首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

char name1[4]="abcd"为什么是错的呢?该怎么处理

2012-03-05 
char name1[4]abcd为什么是错的呢?1.charname1[4] abcd 这样提示错误: abcd:arrayboundsoverflow

char name1[4]="abcd";为什么是错的呢?
1.char   name1[4]= "abcd ";这样提示错误: 'abcd '   :   array   bounds   overflow;
2.char   name1[4]= "abc ";
    char   name1[4]= 'd ';
这样为什么就可以通过呢?
请教各位前辈!谢谢,在线等待!


[解决办法]
“abcd”存储在内存的时候,编译器
加上一个‘\0’字符在末尾,这样串变成了
abcd\0五个字符,所以4个字符的数组容纳不料,后面两个都可以容纳
[解决办法]
是的
说对了
[解决办法]
哦,刚想起来,是不是因为后边放了一个‘\0’呀?

然, 呵呵
[解决办法]
通常,
要么给出足够的长度:char name1[5]= "abcd "
要么,干脆系统自动分配足够的长度即可:char name1[]= "abcd "(在有初始化的情况下)

[解决办法]
\0,看了那么多帖子,总算有一个我会的。哈哈哈
[解决办法]
呵呵,LS很有天分,一帖出来就想明白了,好好努力,我支持你。。。。
[解决办法]
学习字符串数组,一定要牢记\0结尾。数组的准确大小算他一个的噢…………
[解决办法]
“abcd”存储在内存的时候,编译器
加上一个‘\0’字符在末尾,这样串变成了
abcd\0五个字符,所以4个字符的数组容纳不料,后面两个都可以容纳

系统自动分配足够的长度即可:char name1[]= "abcd "(在有初始化的情况下)
[解决办法]
char name[4]= "abcd "
楼主,你觉得这样写会有问题吗?
sizeof(name)和strlen(name)各等于多少?
4 是不包含 /0 在内的
[解决办法]
c string就是烦。

[解决办法]
以后直接写char a[]= "abac ";不是更好。
[解决办法]
加上 '\0 '就5个字符了,而数组长度只是4!
[解决办法]

[解决办法]
只能接分了

热点排行