int main()
{//问题1 这样初始化合法么?我在vc 6.0上编译报错,这个方法是在 c程序设计谭浩强著
//的 p141 所描述的初始化方式
char c[6]={'i','','a','m','','a'};
cout<<c;
//问题2 输入的字符可以超过新分配的空间么,cout函数如何判断字符串是否结束?
char *s;
s=new char[6];
cin>>s;
cout<<s;
delete s;
return 0;
}
----------------解决方案--------------------------------------------------------
int main()
{//问题1 这样初始化合法么?我在vc 6.0上编译报错,这个方法是在 c程序设计谭浩强著
//的 p141 所描述的初始化方式
char c[6]={'i','','a','m','','a'}; //这个地方,''里面最少要有个空格吧,' '
//而且,结束符'\0'也要有的吧
cout<<c;
//问题2 输入的字符可以超过新分配的空间么,cout函数如何判断字符串是否结束?
//答:不行,否则会出错
char *s;
s=new char[6];
cin>>s;
cout<<s;
delete s;
return 0;
}
----------------解决方案--------------------------------------------------------
如果是仅仅是字符数组,那么合法,但你的程序将它看做字符串,因此不合法(因为少了'\0')
输入字符可以超过新分配空间,不过可能会引起数据重叠等问题,导致内存数据错误,不建议使用.
----------------解决方案--------------------------------------------------------
谢谢呀,我明白了
----------------解决方案--------------------------------------------------------
cout<<c;要std::cout!!
----------------解决方案--------------------------------------------------------