请问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]);
}
}
asdhjhg
onemoo
随时随地看视频慕课网APP