中易网

void main() { //输入字符串 char *str; scanf("%s",str); printf("输出输入的字符串*str=%s\

答案:7  悬赏:30  
解决时间 2021-01-09 00:54
void main() { //输入字符串 char *str; scanf("%s",str); printf("输出输入的字符串*str=%s\n",&str); }
最佳答案
str是一个字符指针,你没有为它申请空间就是用,自然会出错。改正:
char *str = (char*)malloc(100);
scanf("%s",str);
printf("输出输入的字符串*str=%s\n",str);
全部回答
你敢换成sprintf_s吗?
char name[50];
sprintf_s(name,"%s","aaaaa")
#include
#include
int main()
{
//char *str =(char*) malloc(100);//定义一个字符串指针,并且初始化100的大小

char str[100];//定义一个字符数组

printf("请输入一个字符串:");
scanf("%s",str);

printf("你输入的字符串是:%s",str);

return 0;
}
主要是您没有对指针进行分配内存空间。
一般情况指针都是需要分配空间的,否则的话是不能进行使用的。
对于字符串来说,我们可以使用字符数组跟字符指针两种方式完成。
//改成下面就可以了。
#include
void main()
{
char a[81],*str=a;
scanf("%s",str);
printf("输出输入的字符串*str=%s\n",str);
}
str未初始化,它指向的是一个不确定的地址,直接赋值是错误的,为了避免重要的数据被覆盖,系统会中止程序。
void main()
{
//输入字符串
char str[100]; //要给str分配存储空间
scanf("%s",str);
printf("输出输入的字符串*str=%s\n",str); //str已经是首地址,可以不用&
}
这样使用容易造成内存错误。
char *str; 声明了一个指针,但没有对其进行初始化,他的值是一个无法预知的值。可能指向一段空的内存,也可能指向其他程序使用的内存地址,也可能不是无用的内存地址。
scanf("%s",str); 的意思是获取一段字符串,并把字符串放到str所指的内存地址之后的一段空间。但本程序并没有申请内存空间,所指的那段内存空间就是上面三种情况中的一种。所以有可能就将其他程序的内存内容给改变了,其他程序崩溃了。
printf("输出输入的字符串*str=%s\n",&str);
这个输出语句也存在问题,&str 应改为str,这的值是字符串地址的头指针,而不是str这个变量所在的地址。&str str这个变量在内存中的地址。str 的值是字符串地址的头指针
代码可修改如下
#include "stdafx.h"
int main(int argc, char* argv[])
{
char str[50];
scanf("%s",str);
printf("输出输入的字符串*str=%s\n",str);
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
APS-C和全画幅相比画质有没有明显区别?
Net Operating Income (NOI) 是什么意思啊啊
博白县第三高级中学的获奖情况
速冻素馅馄饨皮已破原因
分析一下可调稳压器
麻烦问一下,蒙牛始建于哪一年?
巴西第一大港口为什么是里约热内卢,而不是圣
道奇酷威2014款2.4l现在卖多少钱
对下联。 上联:鲁南明珠放异彩。 下联:……
辣椒阴天能打尖吗
楚天广告图文地址在哪,我要去那里办事
内存DDR3和DDR3L的区别是指电压吗,我的电脑
中国证券包不包括期货
VGT可变截面涡轮增压技术有什么作用
双羽四足打一个字
推荐资讯
王小峰能找个什麽样的媳妇?
3x十35等于4x一75得数是多少
lol买戏命师还是买剑魔
请问一加一等于几?
岳飞为何要写《满江红》
如果一个女生写字的风格很像男生,意味着什么
电热水器的耐压与什么有关
云浮至富林一天有几班车
什么是稀释夜?什么是浓缩液?
求解PCB画地线时,怎么情况下,需要大面积覆
:夏天人们喜欢穿浅色衣服,是因为浅色衣服(
铅板内部做加赠好做吗
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?