【原创】指针与实例的问题

typedef struct
{
vector<string> name;
vector<double> score;
}Student;
有个问题,为啥声明为 Student *stu; 然后 stu->name.push_back(name);运行时会有问题,但是编译无问题~~ ;
Student stu;
stu.name.push_back(name);
这样就没问题,为啥?


答:声明为 Student *stu ,只是定义个一个指针叫做stu,但是还没有student实例,你执行stu->的时候,没有实例。
Student stu; 这样的话,会默认调用构造函数,创建一个实例 。

//-----------------------精彩评论--------------------------

#4楼 2015-01-09 08:53 RonTang  

Student *stu;仅仅定义一个指针,并且该指针没有初始化,并没有指向一个已经存在的Student对象。正确的方式应该为:Student * stu =new Student; 使用完后 delete stu;stu=NULL;

Student stu;利用默认构造函数初始化stu对象。stu是栈对象,在脱离作用域后自动销毁。
posted @   宋桓公  阅读(499)  评论(6编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示