我似乎在使用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);
}
*`./a.out'中的错误:realloc():无效下一个尺寸:0x0000000002083010 *
您的代码根本不会放大数组分配的记忆,可能导致各种不确定的丑陋行为)。
您可能意味着
number = realloc(number,(i+1)*sizeof(int));
realloc()
的第二个参数是 new 大小,而不是附加 size。
while ((ch = getchar()) != 'n' ) {
number[i++] = ch-'0' ;
number = realloc(number, (i+1)*sizeof(int));
}