由于某些原因,我的第二个scanf
出现了分段错误。我特别困惑,因为它只适用于第一个scanf
,而不适用于第二个。相关代码如下:
int main() {
NodePtr* startPtr = NULL;
int base;
int number;
getInputs(&base, &number);
convertNumber(startPtr, base, number);
return 0;
}
void getInputs(int* basePtr, int *numberPtr){
printf("Please enter a base number system (2-10 or 16): ");
scanf("%d", basePtr);
while(*basePtr <2 || *basePtr >= 11 && *basePtr <=15 || *basePtr >= 17 ){
printf("\nInvalid input! Please choose a base from 2-10, or 16: ");
scanf("%d", basePtr);
}
printf("\nWhat decimal number would you like to convert: ");//asks for a number to convert
printf("\n%p\n", numberPtr);
scanf("%d", numberPtr);
}
输出:
Please enter a base number system (2-10 or 16): 2
What decimal number would you like to convert:
0x7ffc6b599a34
3
Segmentation fault (core dumped)
发布于 2021-04-01 04:05:51
在我的程序中,我在两个函数调用(这里没有显示)之间有一个printf命令,用来测试是第一个还是第二个函数调用导致了问题。当我运行它时,它没有在main中打印printf语句,所以我认为它是导致问题的第一个函数调用。
事实证明,它实际上是第二个函数调用的空指针,尽管我不确定为什么它不会在两个函数调用之间打印printf语句,但getInputs函数确实可以工作。谢谢!
https://stackoverflow.com/questions/66893892
复制相似问题