77问答网
所有问题
请问一下 在c语言中 用malloc分配一段空间给一个指针p后,free(p)与p=null;作用相同嘛?
free实际上是有一个尾指针,把尾指针指向了动态分配空间的头部了嘛?
举报该问题
推荐答案 2011-09-06
一般是free之后,再p=null 作用是不相同的
free 是告诉系统,这块空间我不同了,系统你可以把它分配给其他程序。
p=null 只是把指针指向空,而原来分配的内存并没有free,系统就以为你还在用,这样这块内存就没法释放,也就是内存泄露了
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/8G3W8Y3qW.html
其他回答
第1个回答 2011-09-06
不相同,前者是释放malloc分配的空间。
后者是赋值,即使是NULL,也是一种赋值方式。
第2个回答 2011-09-06
我老师说不相同 free(p)是释放p指向的 数据 p=null是p为空
第3个回答 2011-09-06
当然不同了,free(p)是将malloc分配的空间释放,p=null是将这个指针置空
第4个回答 2011-09-06
不相同, p=NULL只是让P指向NULL, free(p)释放了P本来所指向那一段内存。特别是堆内的
相似回答
C语言中free
掉
一段空间后
为什么还要
使用NULL
答:
指针free
之后
,free
函数只是把指针指向的内存空间释放了,即内存中存储的值,但是并没有将指针的值赋为
NULL,
指针仍然指向这块内存。而程序判断
一个指针
是否合法,通常都是使用if语句测试该指针是否为NULL来判断,导致指针成为所谓的“野指针”,诱导误操作,示例代码如下,include <stdio.h> include <
mall
...
C语言中
的
malloc函数
用法>?
答:
C语言中malloc
是动态内存分配函数。函数原型:void *malloc(unsigned int num_bytes)。参数:num_bytes 是无符号整型,用于表示分配的字节数。注意:当内存不再使用时,应使用
free()
函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。关于该函数的原型,在以前malloc返回的是char...
C语言中
的动态内存
分配
的用法举例
答:
1、
malloc函数
:其作用是在内存的动态存储区
中分配一个
长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。2、
free
函数:由于内存区域总是有限的,不能不限制地分配下去,而且一个程序要尽量节省资源,所以当所分配的内存区域不用时,就要释放它,...
c语言中malloc
是什么?怎么用?
答:
malloc()
在堆区
分配一
块指定大小的内存
空间,
用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,请使用 calloc() 函数。【返回值】分配成功返回指向该内存的地址,失败则返回
NULL
。操作:由于申请内存空间时可能有也可能没有,所以需要...
C语言中malloc函数
的使用方法
答:
C语言中malloc
是动态内存分配函数。函数原型:void *
malloc(
unsigned int num_bytes);参数:num_bytes 是无符号整型,用于表示分配的字节数。返回值:如果分配成功则返回指向被分配内存的
指针(
此存储区中的初始值不确定),否则返回空
指针NULL
。void* 表示未确定类型的
指针,
void *可以指向任何类型的数据,...
malloc函数
实现的功能是什么?
答:
1. 简介
malloc()
是
C语言中
动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中
分配一个
长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。还有一点必须注意的是,当函数未能成功分配存储
空间(
如内存不足)就会返回
一个NULL
...
C语言
里如何使用
free()
释放字符串内存
答:
free(p
-
1)
;//这句倒是正确的,因为经过p++,这里的p-1刚好是
malloc
申请的地址 return 0;} 另外,问你一个同样的问题:char *p1 = new char[10];char *p2 = new char[20];delete p1[];delete p2[];释放p1
和p
2的时候,没有指明大小,它怎么知道p1是10,p2是20的呢?如果不知道,它怎...
大家正在搜
c语言中malloc函数使用实例
c语言malloc用法
malloc函数的用法c语言
c语言中malloc函数的头文件
realloc和malloc区别
c语言malloc头文件
c语言动态数组malloc
c语言typedef的用法
extern c语言
相关问题
C语言 利用指针和内存分配函数malloc()和free()...
c语言中,malloc和free是什么意思?
C语言编程时使用MALLOC后一直没有用FREE函数释放内存...
free(p),是什么意思?是单纯p==NULL还是说p指向...
C语言中,怎么使用malloc函数为数组指针分配空间 比如要...
c语言函数返回指针时,我定义了个局部变量*p,然后用mall...
C语言:关于FREE()函数的用法
C语言中free掉一段空间后为什么还要使用NULL