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

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

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; //在栈空间定义的变量。

你可能感兴趣的:(c语言,C++)