遇到个C++的问题,请高手帮我解释一下

来源:百度知道 编辑:UC知道 时间:2024/05/29 01:15:47
见下面的代码”
#include<iostream.h>
struct pcb
{
char pcb_name[];
};
void main()
{
struct pcb pcb1;
cin>>pcb1.pcb_name; cout<<pcb1.pcb_name;

为什么字符数组没有定义元素个数,编译可以成功?

我试了下,编译确实可以成功.....
但是这样的写法绝对是错的,这个程序很小看不出来,只要稍微复杂一点立马程序崩溃,我试着给它加了了成员变量,程序就会莫名其妙的中断,这个就是没有给它分配空间的后果

这个其实不怪编译器,这样写又不代表一定要给它分配空间,说不定指向已分配好的空间呢,所以不会编译出错的

数组定义的时候可以不定义个数

支持二楼