社区
C语言
帖子详情
关于字符数组。。。。(求助)
沉珂
2005-12-27 06:53:09
#include <stdio.h>
main()
{
char m[5];
gets(m);
puts(m);
}
输入6个字符,还是输出来,为什么?
如果是字符数组不一定要添加\o的话,
那么在puts时不是不能判断是不是字符串已经结束。。。。
寒,这个问题一直不懂,
问问。。。。
谢谢。。。
...全文
207
7
打赏
收藏
关于字符数组。。。。(求助)
#include main() { char m[5]; gets(m); puts(m); } 输入6个字符,还是输出来,为什么? 如果是字符数组不一定要添加\o的话, 那么在puts时不是不能判断是不是字符串已经结束。。。。 寒,这个问题一直不懂, 问问。。。。 谢谢。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
0黄瓜0
2005-12-27
打赏
举报
回复
2 内存的分配是以 字 (8 个字节)为单位的!!注意, 是字 !!
=======================================
一个字是4个字节,就是说char m[5];char m[6];char m[7];char m[8];都会分二个字长(8个字节),但char m[4];char m[3];只会分一个字长(4个字节)
输入 少于 8个字符时候,都可以正常输出。
如果多了 8 个,那么就 OVER吧 ~
===============================
正确。请运行:
#include <stdio.h>
main()
{
char m[5];
char n[5];
gets(m);
puts(m);
}
这个如果输入多了 4 个,那么就 OVER吧 ~
#include <stdio.h>
main()
{
char m[4];
char n[5];
gets(m);
puts(m);
}
jixingzhong
2005-12-27
打赏
举报
回复
1 gets()自动会在后面增加一个 \0 终结字符串
2 内存的分配是以 字 (8 个字节)为单位的!!注意, 是字 !!
所以有这样的情况:
输入 少于 8个字符时候,都可以正常输出。
如果多了 8 个,那么就 OVER吧 ~
jixingzhong
2005-12-27
打赏
举报
回复
简单 !!
有两个要点 :
flyelf
2005-12-27
打赏
举报
回复
这种情况下,就会给他人的溢出攻击提供了条件了
沉珂
2005-12-27
打赏
举报
回复
是不是这样:
gets的参数是指针,接收到字符串后就开始存在内存中,而不判断是不是还在数组的范围内,
通过指针++来实现存储,输入结束后自动加个\o,puts输出时,碰到\o结束输出。
whatsouta
2005-12-27
打赏
举报
回复
这是因为你输入进去后,从第4个字符开始以后的内存还没有被其他程序用到
tanq
2005-12-27
打赏
举报
回复
就是不做越界检查啊,这里很多人都说了!
表面是正确的,其实程序是错误的
DLL返回文本型数组.rar
本资源"DLL返回文本型数组.rar"显然是一个关于如何在易语言中创建和使用DLL,特别是处理返回文本型数组的教程或示例代码。 易语言是一种面向对象的、以中文为编程语法的编程语言,旨在降低编程的门槛,让更多的人...
太原理工大学java实验报告2022归类.pdf
数组是存储同类型数据集合的容器,而字符串在Java中被视为特殊的
字符数组
。实验要求输入10个数并按升序排列,这涉及到数组的初始化、元素访问和排序。Java提供内置的`Arrays`类帮助进行数组操作,如排序,以及`...
程序设计技术实验报告.doc
字符数组
和字符串处理也是C语言中的一个重要部分,它涉及到计算机处理文本信息的基本方法。 在实际编程中,良好的编程习惯和不断的实践练习是掌握程序设计技术的关键。通过反复练习,学生能够熟练掌握C语言的各种...
大学软件工程专业C语言课件
5. **数组与字符串**:数组是存储相同类型元素的集合,字符串则是一种特殊的
字符数组
。学习如何声明、初始化和操作数组,以及处理字符串函数(如strlen, strcpy, strcat等)是必不可少的。 6. **结构体与联合**:...
c#支付宝标准双接口实现
功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对参数值做urlencode 输入:Dictionary, string> dicArray 需要拼接的数组 Encoding code 字符编码 输出:string 拼接完成以后的字符...
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章