char name1[4]="abcd"为什么是错的呢?该怎么处理
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!
------解决方案--------------------
诺
------解决方案--------------------
只能接分了
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!
------解决方案--------------------
诺
------解决方案--------------------
只能接分了