c语言中指针一定要先进行初始化(结构体指针尤其容易出错)

59 篇文章 4 订阅

指针一定要进行初始化,
未初始化的指针不能直接使用,
结构体指针为例,进行分析:

struct stu{
int age;
char name[3];
};
struct stu *mm;
mm->age=10;
strcpy(mm->name,"ao");

这样写会出问题,因为并没有对指针进行初始化!!!
更正:

struct stu *mm=new struct stu;
mm->age=10;
strcpy(mm->name,"ao");

分析:没有初始化的指针,直接对成员变量进行赋值,成员变量此时在内存中并不存在的。
所以会出错!
总结:可以类比Qt中我们在使用一个类对象时,首先就是要new一下,然后再调用其成员函数。结构体就相当于c++中的类!
struct stu *mm=new struct stu; //new struct stu,是在堆空间定义的变量。
struct stu mm; //在栈空间定义的变量。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值