-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)
重点free是使您分配的内存可用于以下调用malloc.它不保证传递给它的缓冲区以任何方式被擦除.
事实上,你所做的是激发未定义的行为 ; 访问一个缓冲区,该缓冲区free可能会提供先前存储在其中的值或任何其他值,或者它可能会使程序崩溃,或者执行其他任何操作.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |