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的错误。
我想问一下是哪里出现问题,怎么修改?
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是否为空!!
明显的语法问题:
1.主函数第二个参数是指针的指针,要两个“**”;
2.fscanf里面为啥要加“\n”呢?
3.还有一个问题不清楚,你这个“10000”是个文件么?如果只是个字串那肯定是有问题了啊,这个10000必须是个文件名,且存在这个文件并且目录要正确。