永发信息网

请大家帮我看看我的这道程序这里为什么会出错?要怎么改?

答案:1  悬赏:60  手机版
解决时间 2021-08-18 05:17
请大家帮我看看我的这道程序这里为什么会出错?要怎么改?
#include
void main()
{void fun(char *s1,char *s2);
char *a1,*a2;
gets(a1);
fun(a1,a2);
printf(%s \n%s \n,a1,a2);
}
void fun(char *s1,char *s2)
{int i,j;
for(i=0;*s1[i]!='\0';i++); //(invalid indirection)
for(j=0;i!=0;j++,i--) //(invalid indirection)
*s2[j]=*s1[i];} //(invalid indirection)
最佳答案

编译错误提示什么?
再问: 就是右边的那个 invalid indirection。还有就是说s1,s2从来没有被使用。都在函数里面那几行
再答: for(i=0;*s1[i]!='\0';i++); 改成 for(i=0;s1[i]!='\0';i++); *去掉 还有就是; 去掉
再问: 我是要计算字符串的个数啊。我的目的是要将s1逆置给s2
再答: // 写成这样,一个循环就搞定了! int nIndex = 0; while(s1[nIndex] != '\0') { s2[nIndex]=s1[nIndex]; nIndex++; }
再问: 这样子s2还是等于s1啊。我想从s1的最后一个字母开始到最前一个字符按此顺序賦值给s2。
再答: for(i=0;s1[i]!='\0';i++); for(j=0;i!=0;j++,i--) s2[j]=s1[i]; // 这样能编译过吗
再问: 试过,不过第一个循环后 i 要减一,可是结果输出s2的时候说NULL pointer assigment
再答: // s2 的最后没有结束符 后面加一句 for(i=0;s1[i]!='\0';i++); for(j=0;i!=0;j++,i--) { s2[j]=s1[i]; } s2[j] = '\0';
再问: 我蛋疼了,调试的时候可以输出正确的结果,可是在运行的时候在s2输出的时候又说NULL pointer assigment
再答: //s2 野指针。你s2没有初始化 for(i=0;s1[i]!='\0';i++); s2 = new char[i]; for(j=0;i!=0;j++,i--) { s2[j]=s1[i]; } s2[j] = '\0';
再问: s2输出时是说NULL。。。。。。
再答: void fun(char *s1,char*& s2); // 函数申明也要改一下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
你会拿无知当什么
乐康膏打开后存放多久,乐康膏打开半年了还可
9月6号连云港到徐州的火车
一个直棱柱有n个面,问有多少条棱?多少个顶
桂林市里有什么好玩的,桂林市区内有哪些好玩
为什么那么难?
改QQ密码当时可以玩DNF
新乡县新乡翟坡镇卫生院这个地址怎么能查询到
可 可 商 城 5 1 k oko 有谁知道吗?
我的英语语法非常糟糕,我搞不懂什么是宾语,什
我要答案,急!
cena真的打得过送葬者吗
对钱学森的评价两三句话概括即可,不要超过50
谁有QQ华夏会员BB领的序列号啊,给我个,谢谢
雅兰仕音响两年没用了会不会坏掉,会不会跑电
推荐资讯
有没有on another hand ?
百度发帖子后面怎么加图文?
电脑有时候卡住了是什么原因
我这法宝值多少RMB?
为什么我的嘴巴好疼啊...?..?
高三学什么科目,高中都有什么科目
因为带眼镜留下了黑眼圈,现在想拿掉眼镜怎样
肛门膨胀像要大便是什么原因
西安哪有卖 蒂凡尼 饰品的?
蓝色南瓜 THE BLUE PUMPKIN怎么样
惠普笔记本电脑;用了两天电源线烧断是不是质
初音未来出自哪部动漫,初音未来是哪部动漫的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?