时光如鱼 2022-07-19 16:43 采纳率: 0%
浏览 15

遇到了一个关于 segmentation fault的问题,求各位帮助!!

C语言问题,代码如下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int main(int argc, char *argv){
FILE *fp;
fp = fopen(argv[1], "r");
int delimiter = 0001; //不需要
int number = 0010; //不需要
int inputLength; //length
int symbol = 0100; //不需要
int error = 1000; //不需要
//int digital_length; //不需要
char *input;
int remain;
int length = 0;
fscanf(fp,"%s\n",input); //read all inputs, store in input
inputLength = getLength(input);
printf("%d\n", inputLength);
}

可以通过‘gcc first.c -lm -o first’来生成文件,
但是当我通过 ./first 10000 来测试文件时,出现segmentation fault的错误。
我想问一下是哪里出现问题,怎么修改?

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-07-19 16:50
    关注

    char *input;
    int remain;
    int length = 0;
    fscanf(fp,"%s\n",input); //read all inputs, store in input
    这里input都没有分配空间呢
    改为
    char input[1000] = {0};
    另外fopen得到fp后,一定要检查fp是否为空!!

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月19日