这是出于好奇,我试图在以前的问题上找到我怀疑的答案,但他们似乎没有答案.所以问这里,我刚写了一个代码,我试图将内存分配给一个int指针(填充一个数组)并将int值扫描给它.完成数组后,我想删除分配给指针的数据/内存.虽然我的代码工作正常,一切,为什么我仍然能看到int数组甚至是免费的后内值荷兰国际集团的指针.然而,如果我使用两次免费它会引发错误(这是在单次使用免费后预期的).这不是一个奇怪的行为吗?我在我的mac上尝试使用Xcode也在codechef,同样的行为,为什么?
int *num=(int *)malloc(n*sizeof(int));
int i;
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
for(i=0;i<n-1;i++){
temp = some_function(x);
}
free(num);
for(i=0;i<n;i++)
{
printf("\nnum[%d]= %d\n",i,num[i]);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码打印num []内的值,理想情况下它不应该.