社区
C语言
帖子详情
关于字符数组。。。。(求助)
沉珂
2005-12-27 06:53:09
#include <stdio.h>
main()
{
char m[5];
gets(m);
puts(m);
}
输入6个字符,还是输出来,为什么?
如果是字符数组不一定要添加\o的话,
那么在puts时不是不能判断是不是字符串已经结束。。。。
寒,这个问题一直不懂,
问问。。。。
谢谢。。。
...全文
197
7
打赏
收藏
关于字符数组。。。。(求助)
#include main() { char m[5]; gets(m); puts(m); } 输入6个字符,还是输出来,为什么? 如果是字符数组不一定要添加\o的话, 那么在puts时不是不能判断是不是字符串已经结束。。。。 寒,这个问题一直不懂, 问问。。。。 谢谢。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
就是不做越界检查啊,这里很多人都说了!
表面是正确的,其实程序是错误的
c#支付宝标准双接口实现
功能:把
数组
所有元素,按照“参数=参数值”的模式用“&”
字符
拼接成
字符
串,并对参数值做urlencode 输入:Dictionary, string> dicArray 需要拼接的
数组
Encoding code
字符
编码 输出:string 拼接完成以后的
字符
...
谭浩强C语言对应C语言课程PPT.zip
1.2
字符
数组
1.3 指针和
数组
2.结构类型: 2.1 结构类型的概念 2.2 结构类型定义及结构变量说明 2.3 结构变量的初始化 2.4 结构
数组
的初始化 3.联合类型(识记): 3.1 联合类型的概念 3.2 联合类型定义和联合...
PAT 乙级 1018 剪刀石头布(二维
字符
数组
输入)
想法是输入二维
字符
数组
,然后比较
字符
数组
每行的第一个和第二个
字符
,对相应的计数进行自加运算 这是运行后的结果,可以看到aC,aJ,aB,bC,bJ,bB还都是0。请各位大佬指点一下。题目如下: ...
c语言中
字符
数组
如何传递参数,C语言中
数组
作为函数参数时元素传入的...格式?没看懂教程额...
#includevoidreplaceMax(intarr[],intvalue){intmax=arr[0];intindex=0;inti;for(i=1;i<5;i++){if(arr[i]>...//将
数组
中较大的数赋值给maxindex=i;//记录当前索引}}arr[index]=value;}intmai...
c语言怎么交换二维
字符
数组
,[
求助
] 怎样转换一个
字符
二维
数组
到一维
数组
~~~...
该楼层疑似违规已被系统折叠隐藏此楼查看此楼怎样转换下面的二维
数组
到一维
数组
,然后输入数字,然后显示出输入数字在
数组
中相对应的词charcommonWords[13][60]={"Cisastructured,proceduralprogramming",...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章