首页 新闻 会员 周边

关于字符数组的定义及内存占用问题

0
[已解决问题] 解决于 2014-05-19 19:52

代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
char b[5] ;
gets( b );
printf("strlen b =%d,sizeof b =%d \n",strlen(b),sizeof(b));
return 0;
}

运行结果如下:

我定义了 b 只有5个长度,但是输入时却可以超过这些

运行也没报错,原因是什么?

lleo小浩的主页 lleo小浩 | 初学一级 | 园豆:200
提问于:2014-05-18 12:02
< >
分享
最佳答案
1

gets( b ); 长啥样?

奖励园豆:5
刘宏玺 | 专家六级 |园豆:14020 | 2014-05-18 13:17

不懂你回答的意思额。。。

lleo小浩 | 园豆:200 (初学一级) | 2014-05-18 14:23

@lleo小浩: http://zhidao.baidu.com/link?url=QfNrEOdaiI9JrvPYUGibd8VnaIbwS_E4QxhPuYGeFSgkh3BpqqZCQZ1ZQhixwthlyZbuQKeMGWI1Afx6iHLNja

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-18 14:49

@博客¥: 恩恩,感谢你的帮助啦

lleo小浩 | 园豆:200 (初学一级) | 2014-05-18 17:29
其他回答(1)
0

C没有检查这类数组越界的机制,需要你自己处理越界问题

LiuKaiFa | 园豆:1491 (小虾三级) | 2014-05-18 15:28

知道了,谢啦

支持(0) 反对(0) lleo小浩 | 园豆:200 (初学一级) | 2014-05-18 17:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册