c语言 free的疑问

我们作业要求用malloc预定空间,然后读入信息,这些读入的数据是需要一直存在的,如果free了岂不是意味着这些数据就可能被意外更改了? 到底在什么情况下使用free, 对这个命令有些困惑,多谢了!

1.如果你只在main函数或者一个子函数里使用,那就在main函数或者子函数的结尾进行free;
2.如果你在子函数里用了malloc,并返回了这个指针,那么就要在调用这个子函数的函数里,那块区域不再用了再free
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言 free的疑问
1.如果你只在main函数或者一个子函数里使用,那就在main函数或者子函数的结尾进行free;2.如果你在子函数里用了malloc,并返回了这个指针,那么就要在调用这个子函数的函数里,那块区域不再用了再free

在c语言中有关free的用法错误,求指点。
free只能释放堆里内存.

关于在C语言中使用free()的问题?
这个错误虽然在free时报错,但是错误不是free导致的。(C_pt + sizeof(int)) = 2;这里你在访问C_pt指向的内存的第5个int,而你只分配了4个int的内存,因此你的代码出现内存访问越界,当然有问题。这可能是你对C_pt+运算符的含义理解错误导致的。底下的没有越界,当然没问题 ...

关于C语言中free函数的问题
要free的话首先那块空间得是malloc, calloc, realloc...开辟出来的内存空间, free多少取决于当时alloc出多少.char* a = (char*)malloc(x*y*sizeof(char));\/\/开辟了x*y个char的空间,(这里是二维的,如果多维就是要多少,开多少);\/\/相当于a[x][y];\/\/但是malloc出的空间是堆区的,而数组是在...

C语言函数问题: free可以只释放个别单元吗,比如我定义了一个动态数组...
不可以,这个需求要通过移动数组元素再加上realloc()函数实现

关于c语言中free函数的一些疑问
你不能在函数里面释放空间,因为你申请空间的目的就是反回给主函数中的P,如果你一申请就又在函数里释放了,那和没申请没有什么区别,所以你在主函数中P也就无法再调用那一片空间了.

关于C语言free函数的问题?
如果房间没有新人来,你还可以用a开门,并且看到你睡过的床、用过的毛巾。但是很快,房间有新人入住了,但是没有换房卡(也换不了)。这时你用a开门进去,面临的将是很严重的法律问题——内存冲突,程序当掉。所以说“安全”的程序语言,发现你走了不用房间了,就会自动退房并且把房卡回收掉。而C和...

关于c语言中free函数的一些疑问
1:栈存储区。主要是存储局部的变量。2:静态存储区:主要是存储全局的变量和静态的变量。3:堆存储区:主要是存储用户自己向内存申请的变量。比如是:malloc,calloc,new 4:代码区:就是存代码:现在讲你的程序你要是想把ptr的只给传回去,就是想把栈里面临时的变量当作静态存储区里面的变量,你说能...

关于C语言free函数的问题
一般delete是和new配对的,free和malloc配对的!!其释放的是p所指向的空间,即内存地址!!但是指针变量没有变成NULL,其还是指向原来开辟的空间,但是此空间被释放了,所以其就是一个“野指针”,指针所指向的内容是”垃圾“,因此释放空间的时候,建议也把指针变成空指针!!!以免误用!!

C语言free函数的疑问
指针变量本身是不释放的!只有指针变量的生命周期到了才会释放(比如主函数里定义的指针变量,当主函数结束后才释放!)

相似回答
大家正在搜