指针初始化是非常重要的,当我们在声明一个指针的时候请记得给它赋初值NULL,free释放完指针内容的时候也给他赋null初值。谢谢
来源:互联网 发布:英文翻译软件下载 编辑:程序博客网 时间:2024/05/17 20:27
没有初始化的指针是最危险的,因为它可能指向任何地址区域。所以如果没有显示的将其初始化为null,那他肯定不为空。这是释放它所指向的内存。肯定会出错。指针初始化是非常重要的,当我们在声明一个指针的时候请记得给它赋初值NULL,free释放完指针内容的时候也给他赋null指针。谢谢!
定义了一个struct HString{
char *ch;
int length;
};
的串类型,
在接下来的操作中:Status StrAssign(HString &t,char *chars){
int i=0,n;
char *c=chars;
if (t.ch) free(t.ch);
时出错。。。,编译通过,但是运行的时候就跳出一个匡说错误
dbgheap.c文件1011行。。。
我不知道这句if (t.ch) free(t.ch)怎么错了?
写成if (t.ch!=NULL) free(t.ch)也不行
单步调试的时候发现t.ch的值为0xcccccccc,但是判断if的时候却是通过的
在free这个地址的时候出错。。不知道什么原因。。忘高手指教阿!
从t.ch的值为0xcccccccc来看,t.ch指针没有初始化NULL
if (t.ch) free(t.ch);//0xcccccccc != NULL;所以它当然执行啦,但是你没有给指针分配内存,用free来释放它,当然错了。
0 0
- 指针初始化是非常重要的,当我们在声明一个指针的时候请记得给它赋初值NULL,free释放完指针内容的时候也给他赋null初值。谢谢
- 指针常见的错误——指针未赋初值
- c++空指针赋初值
- 为什么一般不用一个整数给一个指针变量赋初值?[c/c++]
- 给数组赋初值
- 给表赋初值
- 给数组赋初值
- 给链式数据结构循环赋初值的方法
- 初始化(赋初值)的重要性
- 变量的初始化和赋初值
- #endif status 指针赋初值为0
- 将特定的内存地址赋给一个指针
- 已知javabean形式类的类名,给这个类的一个对象赋初值
- 数组首地址给赋给 指针的问题
- 动态二维数组的申请、赋初值、使用、释放空间
- 请尽量不要为全局变量赋不必要的初值!
- 创建一个public static final 类型的map 并能赋初值,并且只能在初始化的时间赋值,而不能中途修改它的值
- c 语言 没有赋初值(显示初始化) 的结果
- MySQL数据库的环境及简单操作
- xcode6提交应用失败(Error Description not available)
- 走进 WatchKit Framework
- 对Spring MVC初学的认识
- STM32.定时器
- 指针初始化是非常重要的,当我们在声明一个指针的时候请记得给它赋初值NULL,free释放完指针内容的时候也给他赋null初值。谢谢
- Google官方对Andoird 2.x提供的ActionBar支持
- iPhone安装企业软件到75%提醒“当前无法完成安装”
- cJson使用方法
- linux arm 交叉编译器安装
- iOS极光推送集成
- AFNetworking源码解析<四>
- 如何为 Parallels Desktop 9 中的虚拟机安装 OS X 10.9 Mavericks
- 这些年AIX运维经常浏览的网站(备忘)