c-将指针传递到函数时出现分段错误



我正试图将指针传递到一个函数中,以便可以使用更多的函数。我一直在使用下面的代码,每当我运行程序时都会出现分段错误。我需要在哪里添加指针才能使其工作?

我使用过FILE**filePointer和&fileName,但这仍然会产生分段错误。

FILE* filePointer = fopen(fileName, "r");
checkIfPointerIsNull(filePointer);
char output[256];
printQuestion(output,filePointer);
actualAnswer1 = getactualAnswerX(6,output,filePointer);
actualAnswer2 = getactualAnswerX(7,output,filePointer);
actualAnswer3 = getactualAnswerX(8,output,filePointer);
actualAnswer4 = getactualAnswerX(9,output,filePointer);
userAnswer = getUserInput("word");
int printQuestion(output,filePointer)
{
int i,j;
j = getRandomNumber()%4;
for(i=j;fgets(output, sizeof(output), filePointer) != NULL;i++)
{
if(i<=5)
{
printf("%02d: %c", i, output);
}
}
return 0;
}
char getactualAnswerX(a,output,filePointer)
{
int i;
char actualAnswer1,actualAnswer2,actualAnswer3,actualAnswer4;
for(i=a;fgets(output, sizeof(output), filePointer) != NULL;i++)
{
if(i==6)
{
fscanf(filePointer, "%c", actualAnswer1); 
return(actualAnswer1);
}
if(i==7)
{
fscanf(filePointer, "%c", actualAnswer2);
return(actualAnswer2);
}
if(i==8)
{
fscanf(filePointer, "%c", actualAnswer3);
return(actualAnswer3);
}
if(i==9)
{
fscanf(filePointer, "%c", actualAnswer4);
return(actualAnswer4);
}
}
fclose(filePointer);
}
int checkIfPointerIsNull(filePointer)
{
if(filePointer==NULL)
{
printf("Can't load questions");
return 1;
}
}
char getUserInput(word)
{
char userInput;
printf("Input");
printf("%c",word);
scanf("%c",userInput);
return(userInput);
}

在scanf中,您需要将pointrer传递给要分配扫描值的对象

scanf("%c",userInput);->scanf("%c",&userInput);

以及代码中的许多其他地方。这很可能是你问题的根源

您还需要声明参数的类型,否则它们将被假定为整数。

阅读警告,因为你有不可计数的数字。这里有很多问题——几乎每一行都是错的。所以从警告开始

相关内容

  • 没有找到相关文章

最新更新