我似乎无法使用 realloc 扩展数组...请帮帮我 这是代码:
main()
{
int resultarray[] = {1}, i = 0 ,ch ;
int *number = malloc(sizeof(int));
printf("Enter number : ");
while ( ch = getchar() != '\n' ) {
number[i++] = ch-48 ;
number = realloc(number,sizeof(int));
}
printf("%d",i);
}
* Error in `./a.out': realloc(): invalid next size: 0x0000000002083010 *
最佳答案
您的代码根本不会扩大数组(因此写得超出 分配的内存,这可能会导致各种未定义的丑陋行为)。
你的意思可能是这样的
number = realloc(number,(i+1)*sizeof(int));
realloc()
的第二个参数是新 大小,而不是附加 大小。
关于c - 无法使用 realloc : "invalid next size" 扩展数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21563313/