指针一定要进行初始化,
未初始化的指针不能直接使用,
结构体指针为例,进行分析:
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; //在栈空间定义的变量。