我正在考虑在扫描时将内存并排分配给数组的程序。我结束了这个程序,它不工作! (当然,我正在做一个大错误;))需要帮助!提前致谢!将内存自动分配到数组
char *arr;
int c=1,i=0;
arr=(char*)calloc(c,sizeof(char));
do
{
arr[i]=getch();
printf("%c",arr[i]);
c=c+sizeof(char);
arr=(char*)realloc(arr,c);
i++;
}while(arr[i-1]!=13);
arr=(char*)realloc(arr,c);
arr[i]='/0';
printf("%d",sizeof(arr));
puts(arr);
free(arr);
什么不工作?发生什么事 ?另外,请注意,它经常需要重新分配指针。 – blue112
请注意'sizeof(arr)'会打印'char *'的大小(最有可能是8台机器)。那是你要的吗? – someguy
[请不要在C](http://stackoverflow.com/a/605858/28169)中投射'malloc()'和朋友的返回值。 – unwind