指针未指向合法的内存,即定义了指针变量,却没有为指针分配内存。
刚开始学的时候,老师给我们的课件上出现过这么一个例子:
这里面定义了结构体类型stu,结构体成员里的字符串name,只是定义了一个指针变量,并没有给它分配内存,编译的时候不会出错,但运行时就会出现段错误,
解决办法:可以将指针name定义成字符串数组name[20];
如果一定要定义成指针的话可以用malloc函数为其分配一块空间,例如:name = (char *) malloc (sizeof(char) * 20);
当然,用到 mallo c函数,一定不要忘了在使用完毕之后用 free 释放掉,防止占用堆内存。