内存泄露——结构体成员指针未初始化
2013-01-08 21:10
232 查看
struct student
{
char * name;
int score;
}stu, *pstu;
int main()
{
strcpy(stu.name, 'Jimy');
stu.score = 90;
return 0;
}
问:这段代码有什么错误?
答:定义的结构体变量stu,分配了char *类型的指针(指针变量name本身只分配了4个字节)和int类型的变量score;而nam指针并没有指向一个合法的地址。
正确的做法是:为name指针变量malloc一块空间。
int main()
{
stu.name = (char *) malloc(8);
strcpy(stu.name, 'Jimy');
stu.score = 90;
return 0;
}
{
char * name;
int score;
}stu, *pstu;
int main()
{
strcpy(stu.name, 'Jimy');
stu.score = 90;
return 0;
}
问:这段代码有什么错误?
答:定义的结构体变量stu,分配了char *类型的指针(指针变量name本身只分配了4个字节)和int类型的变量score;而nam指针并没有指向一个合法的地址。
正确的做法是:为name指针变量malloc一块空间。
int main()
{
stu.name = (char *) malloc(8);
strcpy(stu.name, 'Jimy');
stu.score = 90;
return 0;
}
相关文章推荐
- 结构体指针为分配内存访问结构体成员错误
- C Language Study - 结构体成员指针初始化
- 你必须知道的指针基础-6.内存的初始化及结构体的使用
- c语言结构体指针成员初始化
- string 作为结构体成员变量之内存泄露
- 结构体成员和结构体指针初始化
- 类中指针成员的内存分配和初始化
- 关于C++中结构体及其指针成员的内存分配和释放
- 结构体指针初始化以及结构体中成员变量是指针的初始化
- 读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组
- c++指针与内存泄露
- C语言结构体里的成员数组和指针
- 野指针、内存泄露
- C语言结构体里的成员数组和指针
- 把“0”强制转化为结构体指针类型得到成员变量的偏移量
- c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针
- C语言结构体指针初始化!
- 在Golang里如何实现结构体成员指针到结构体自身指针的转换
- 从C开始_结构体_初始化和对成员的访问
- C++11 shared_ptr 智能指针 的使用,避免内存泄露