我在使用malloc/realloc命令和数组时遇到了一些麻烦.我已经创建了一个包含一些整数的小数组,并尝试通过使用realloc扩展大小并添加值来为其添加一个值,但是当我这样做时,0索引的值不会被保留并被视为垃圾.
#include <stdio.h>
#include <stdlib.h>
int main(){
int n;
printf("Enter size of array\n");
scanf("%d",&n);
int *A = malloc(n*sizeof(int));
for(int i = 0; i < n; i++){
A[i] = i + 1;
}
*A = realloc(A, sizeof(A)+ sizeof(int));
A[n] = 1234;
for(int i = 0; i < n + 1; i++){
printf("%d\n",A[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,会发生这种情况:
Enter size of array
5
14643216
2
3
4
5
1234
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么数组的0索引得到这个值而不是1?