首页 新闻 会员 周边 捐助

c#字符指针

0
[已解决问题] 解决于 2011-10-07 19:06

C语言书上说了。 char *a;scanf("%c",a);是不安全的。虽然给a分配了控件。但是不知到他是否被其他数据占用。那么书上为什么总是写  char *str="I am a boy ";呀 这样就安全吗

三月软件工作室——任忌的主页 三月软件工作室——任忌 | 小虾三级 | 园豆:524
提问于:2011-07-09 21:31
< >
分享
最佳答案
1

char *a 这种形式就是4个字节的长度,因此如果scanf的内容多于4个就会错,因此不安全

char *str="I am a boy " 编译器能够保证字符的空间正好,因此不会错

2012 | 高人七级 |园豆:21445 | 2011-07-11 08:40
可是 书上说的 是char *a 给a 分配的是一个不知有没有被其他数据占用着的数据空间呀。如果直接赋值有可能将其他代码使用的数据替换掉呀
三月软件工作室——任忌 | 园豆:524 (小虾三级) | 2011-07-11 09:58
不同的编译器表现不一样,以前的老编译器有的会有问题,因此最好还是采用标准的语法,如str[]等形式明确告术空间大小
2012 | 园豆:21445 (高人七级) | 2011-07-12 08:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册