- 结构体成员指针未初始化
- 结构体成员指针未分配足够的内存
- 内存分配成功,但并未初始化
- 内存操作越界
我们应该怎么做?
(1)动态内存申请之后,应该立即检查指针值是否为NULL,防止使用NULL指针。
(2)free指针之后,必须立即赋值为NULL。
int* p =(int*)malloc(100);
if( p!= NULL)//代表申请成功
{
本文探讨了C语言中常见的内存错误,包括结构体成员指针未初始化、内存分配不足、未初始化内存和内存操作越界。提出了防范措施:动态内存申请后检查NULL、释放后赋NULL、操作带长度信息、确保malloc与free匹配,防止内存泄漏和异常。内存错误主要是由于非法指针值和内存管理不当造成的。
我们应该怎么做?
(1)动态内存申请之后,应该立即检查指针值是否为NULL,防止使用NULL指针。
(2)free指针之后,必须立即赋值为NULL。
int* p =(int*)malloc(100);
if( p!= NULL)//代表申请成功
{

被折叠的 条评论
为什么被折叠?