c中的自由功能

-1 c

我已经为某些数据类型分配了内存并分配了一些值.现在使用的free是内存中的数据是否被删除?free如果未删除分配的数据,使用什么?谁能帮我吗?例如:

int *arr;
arr=(int*)malloc(sizeof(int)*1000);
assert(arr!=NULL);
/*Some operation*/

arr[123]=354;
//some operations

printf("%d",*(arr+123));
//calling some funcs

free(arr);

printf("\n%d",*(arr+123));
Run Code Online (Sandbox Code Playgroud)

Fre*_*Foo 5

重点free是使您分配的内存可用于以下调用malloc.它不保证传递给它的缓冲区以任何方式被擦除.

事实上,你所做的是激发未定义的行为 ; 访问一个缓冲区,该缓冲区free可能会提供先前存储在其中的值或任何其他值,或者它可能会使程序崩溃,或者执行其他任何操作.