char *s char s[] 区别

#includevoidmain(){char*s;gets(s);puts(s);}程序在运行时可能会出错,原因是__指针变量s未赋初值____。答案是这样么?我觉是因... # include
void main( )
{ char *s;
gets(s);
puts(s);
}
程序在运行时可能会出错,原因是__指针变量s未赋初值____。

答案是这样么? 我觉是因为*s分配的内存空间不能更改
因为即使是在 对*s 做初始化之后运行还是报错哇!
展开
 我来答
ithink07
2011-05-15 · 超过12用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:35.7万
展开全部
问题是你通过char ×s定义的s只是一个字符类型指针,你还没有为这个指针所指向的内容分配空间,因此你输入字符串时会提示错误,你至少得通过malloc或者new为s指向的内容分配足够的空间才行。
追问
new是怎么分配空间的呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
neak47
2008-08-03
知道答主
回答量:50
采纳率:0%
帮助的人:29.5万
展开全部
char 字符 32位PC机一般在内存中占1个字节
char* 字符型指针 32位PC机指针一般都在内存中占4个字节
char[] 字符数组 按照字符数组的域宽来算

输入方式,输出方式 是什么意思,不是很明白...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫函娱乐
2017-05-02 · TA获得超过1310个赞
知道大有可为答主
回答量:1315
采纳率:91%
帮助的人:1076万
展开全部
char* c与char *c 没有任何区别
char* c和char c 有区别,CHAR C是一个字符,CHAR* C是CHAR指针,他可以带表一个字符串引用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逆天小逗比cm
2017-05-02 · TA获得超过338个赞
知道小有建树答主
回答量:433
采纳率:66%
帮助的人:54.2万
展开全部
char a 表示 定义了一个变量,名叫a, 它是字符类型(占用内存的一个字节)char a[1] 表示 定义了一个数组,名叫a, 它是一个包含一个字符类型数据的数组,这个数组只能存放1个字符类型的数据。两者在不接触指针做函数参数的程序的时候功能是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdwnk
2011-05-15
知道答主
回答量:38
采纳率:0%
帮助的人:13.7万
展开全部
s所指的空间没有被分配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式