社区
C语言
帖子详情
一个奇怪问题求解
hqhqhw
2004-03-31 11:05:09
char str[9]="huhaiquen";
printf("%d",strlen(str));
显示为10
char str[10]="huhaiquen";
printf("%d",strlen(str));
显示为9
为什么字符串超过字符数组的长度还能赋值?请各位大侠给个详细的说明。
...全文
24
9
打赏
收藏
一个奇怪问题求解
char str[9]="huhaiquen"; printf("%d",strlen(str)); 显示为10 char str[10]="huhaiquen"; printf("%d",strlen(str)); 显示为9 为什么字符串超过字符数组的长度还能赋值?请各位大侠给个详细的说明。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
junnyfeng
2004-03-31
打赏
举报
回复
因为你前一种定义的str不够大,放入字符串后没有字符串结束符 '\0'
strlen函数一直找到0才停止记数,它可能不后面的内存内容计进去。
-----
正解
antijpn
2004-03-31
打赏
举报
回复
如果你的程序里面没有其他的变量,这样的越界访问造成的危险还不算很大,如果恰好这个变量在栈的最后,那么呵呵,准备哭吧!
反正这个肯定是越界了,如果只是要知道数组的大小,可以用sizeof得到结果。否则声明的时候就不要指定大小
bjskyhorse
2004-03-31
打赏
举报
回复
字符串后没有字符串结束符 '\0',C自己不检查越界,而strlen函数一直找到0才停止记数,它可能不后面的内存内容计进去。
chenyuntian
2004-03-31
打赏
举报
回复
我的机器是9和10
angelo23
2004-03-31
打赏
举报
回复
应该是一种巧合吧,如果str+9的位置和str+10的位置都不是'\0',那结果又不一样了
zouxueping
2004-03-31
打赏
举报
回复
C中本身就不检查越界操作内存,这得程序员自己去保证,你就是很明显地用str[10],它也只有一个警告而已,如果用指针,就随便你怎么搞了。
char str[9]="huhaiquen";
printf("%d",strlen(str));
显示的也不一定就是10,大于9的任意数都有可能。
HitXU
2004-03-31
打赏
举报
回复
因为你前一种定义的str不够大,放入字符串后没有字符串结束符 '\0'
strlen函数一直找到0才停止计数,它可能把后面的内存内容计进去。
后一种空间够大。
“abc”字符串在内存中要在4位,最后要有结束符的。
HitXU
2004-03-31
打赏
举报
回复
因为你前一种定义的str不够大,放入字符串后没有字符串结束符 '\0'
strlen函数一直找到0才停止记数,它可能不后面的内存内容计进去。
yjh1982
2004-03-31
打赏
举报
回复
内部初始化实现是
memset(str,const char address,sizeof(str));
抓到
奇怪
的握手包
抓到包,反而出现不同的客户端名称。
求解
和解开包之谜,多谢!
binary_orbit:模拟双星太阳系中行星的运动。-matlab开发
模拟双星太阳系中单个行星的运动。 使用 Simulink
求解
行星的运动方程。 假设星星是静止的。 改变系统参数以生成
奇怪
的轨道,玩得开心!
matlab常微分方程
求解
matlab常微分方程
求解
,通过编程实战掌握具体应用。包括matlab常微分方程
求解
前、matlab常微分方程
求解
中、matlab常微分方程
求解
后。
求解
带约束的最优化
问题
首先感谢《利用Python
求解
带约束...昨天项目例会上产品提了
一个
看似很正常但是细想却很棘手的要求,在前端页面上展示出来的内容如果仅仅只有分割网络的结果会很
奇怪
,对用户的体验不好,他需要在包含目标的bbox基础...
蓝桥杯-
奇怪
的捐赠 递归方法
求解
java
麻烦的是,他有个很
奇怪
的要求: 1. 100万元必须被正好分成若干份(不能剩余)。 每份必须是7的若干次方元。 比如:1元, 7元,49元,343元,... 2. 相同金额的份数不能超过5份。 3. 在满足上述要求的情况下,...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章