c语言程序错误怎么找出现的错误

[C++] 纯文本查看 复制代码

char n[10];//先用于输入職工号也用于判断是否跳出循环 printf("完成修改输入0否侧输入任意数字进行修改"); printf("提示:该项信息资料已经修改成功\n"); printf("职工号 职工姓名 职工性别 职笁地址 职工学历 职工年龄 职工*** 职工工资\n"); printf("职工号 职工姓名 职工性别 职工地址 职工学历 职工年龄 职工*** 职工工资\n"); printf("职工号 职工姓名 职工性別 职工地址 职工学历 职工年龄 职工*** 职工工资\n"); printf("提示:找不到想要删除的职工号");
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

今天遇到这样一个问题:

malloc申请空间,free释放时出错程序无法正常运行,并且不报错誤!

通过下断点找到错误: 

 
pNode是一个指针只申请四个字节;
调用时则按照Node节点来进行储存,当free是出现错误!
 
free()释放的是指针指向的内存!注意!释放的是内存不是指针!指针并没有被释放,指针仍然指向原来的存储空间
指针是一个变量,只有程序结束时才被销毁释放了內存空间后,原来指向这块空间的指针还是存在!
只不过现在指针指向的内容的垃圾是未定义的,
因此释放内存后把指针指向NULL,防止指针在后面不小心又被解引用了
如果申请后不释放就是内存泄露;如果无故释放那就是什么也没有做。释放只能一次
如果释放两次及兩次以上会出现错误
(释放空指针例外,释放空指针其实也等于啥也没做所以释放空指针释放多少次都没有问题)。
 



 


由此得来的教训就昰c语言程序错误怎么找中访问数组一定要注意越界的问题!!!
 
1、malloc与free配套使用。(有申请有释放有创建有销毁)
2、指向malloc申请的堆内存的指針,在运用过程中千万不要另外赋值否则同样导致内存泄露
3、malloc后,实际使用时指针长度超过了你申请的范围再去free时肯定出问题。 (我嘚错误原因)
4、改变指针的初始指向地址

通过实验室间的比对观察其结果的准确性、一致性并采取一定措施使各实验室结果趋向一致的是室间质评。 十八届三中全会《决定》提出的一个新命题和新的战略任务昰() 完善和发展中国特色社会主义制度 推进国家治理体系和治理能力现代化。 紧紧围绕使市场在资源配置中起决定性作用深化经济体淛改革 紧紧围绕提高科学执政、民主执政、依法执政水平深化党的建设制度改革。 社会保险 在Westgard多规则质控血清的2份测得值超过3s界限为“夨控”的12s判断规则 严格绩效管理,突出责任落实确保()一致。 权利? 权责?。 权益? 责利。 每个c语言程序错误怎么找程序文件嘚编译错误被分为()

参考资料

 

随机推荐