struct Student
{
char* name;
int number;
};
int main()
{
struct Student s;
*s.name = a;
s.number = 99;
printf("%c %p",s.name,s.number);
return 0;
}
结构体布局在脏的栈空间,其中 name未知初始值可能指向非法空间,例如会产生段错误的区域。即野指针。
本文探讨了在C语言中使用结构体时可能遇到的野指针问题,特别是在栈上分配结构体并初始化其成员为指针时的风险。示例代码展示了如何不当的初始化可能导致指向非法内存地址的情况,从而引发段错误。
struct Student
{
char* name;
int number;
};
int main()
{
struct Student s;
*s.name = a;
s.number = 99;
printf("%c %p",s.name,s.number);
return 0;
}
结构体布局在脏的栈空间,其中 name未知初始值可能指向非法空间,例如会产生段错误的区域。即野指针。

被折叠的 条评论
为什么被折叠?