gpt4 book ai didi

c - 使用 free() 释放内存

转载 作者:行者123 更新时间:2023-11-30 19:37:22 26 4
gpt4 key购买 nike

我想了解c中的free()释放内存或者它只是删除malloc分配的内存中的数据。

#include<stdio.h>
#include<stdlib.h>

int main()
{
int n;
printf("enter the size of n:\n");
scanf("%d", &n);
int* A=(int*)malloc(5*sizeof(int));
int i;
for(i=0; i<n; i++)
{
printf("%d\n", &A[i]);
}

free(A);

printf("\n\n-------------\n\n");

for(i=0; i<n; i++)
{

printf("%d\n", &A[i]);
}

return 0;
}

在释放 A 之后,它仍给出 A 的相同地址。free() 实际上做了什么?

最佳答案

它会释放内存,但由于 C 会让你搬起石头砸自己的脚,因此指针仍然指向已释放的内存块。以任何方式使用它都会调用未定义的行为

关于c - 使用 free() 释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39941793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com