请问malloc怎么也初始化地址为0??free(A)只释放A[0] realloc增加的内存地址第一个是随机的后面都是初始化0???有截图
malooc和calloc初始化肯定不一样啊,一个随机的比如分配的地址是 -17891602,而calloc是初始化为0的 地址应该是 0,不明白上面怎么执行的不对?
free的问题,难道是因为指针A返回的value是内存中第一个地址的缘故?所以free只在第一个地址位置随机分配?我感觉整个人都不好了。。。。。
还有realloc也是这问题,增加了双倍内存,然后增加部分的内存第一个地址是随机的,后面都是0 郁闷啊!!!
大神来救我!!!
#include <stdio.h> #include <stdlib.h> int main() { int n; printf ("Enter size of array\n"); scanf("%d",&n); int *A = (int*)calloc(n,sizeof(int)); /* for(int i=0; i<n; i++) { A[i] = i+1; } free(A); */ //A = NULL;//It is a good practice to set pointer address as NULL after call to free. NULL is a macro for address 0 is and it cannot be dereferenced. The code below this statement will now cause a crash. for(int i=0; i<n; i++) { printf ("%d\n", A[i]); } }
onemoo
相关分类