m0_74097933 2022-10-05 17:58 采纳率: 0%
浏览 25

这个为什么会出现段错误?

1 //25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
2 #include<stdio.h>
3 #include<string.h>
4 #define SIZE 100
5 char compare_string_len(char *str1,char *str2,int size)
6 {
7 printf("please two string:\n");
8 scanf("%s",&str1,&str2);
9 if(strlen(str1)>=strlen(str2))
10 {
11 return *str1;
12 }
13 else
14 {
15 return str2;
16 }
17 /
while(*m)
18 {
19 i++;
20 *m++;
21 }
22 while(*n)
23 {
24 j++;
25 *n++;
26 }
27 if(i>=j)
28 {
29 m=str1;
30 }
31 if(i<j)
32 {
33 m=str2;
34 }
35 return *m;
36 */
37 }
38 int main(void)
39 {
40 char str1[SIZE],str2[SIZE];
41 compare_string_len(str1,str2,SIZE);
42 printf("%s\n",str1,str2);
43
44 }

  • 写回答

3条回答 默认 最新

  • 叶落花枯 2022-10-05 18:20
    关注

    scanf("%s",&str1,&str2);
    改成
    scanf("%s", str1);
    scanf("%s", str2);
    scanf后面填的是接受输入的变量地址,str1和str2就是指针了,不需要&

    评论

报告相同问题?

问题事件

  • 创建了问题 10月5日

悬赏问题

  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别