首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的函数中的第二个scanf不工作

我的函数中的第二个scanf不工作
EN

Stack Overflow用户
提问于 2021-04-01 03:09:53
回答 1查看 39关注 0票数 0

由于某些原因,我的第二个scanf出现了分段错误。我特别困惑,因为它只适用于第一个scanf,而不适用于第二个。相关代码如下:

代码语言:javascript
运行
复制
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);
}

输出:

代码语言:javascript
运行
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-04-01 04:05:51

在我的程序中,我在两个函数调用(这里没有显示)之间有一个printf命令,用来测试是第一个还是第二个函数调用导致了问题。当我运行它时,它没有在main中打印printf语句,所以我认为它是导致问题的第一个函数调用。

事实证明,它实际上是第二个函数调用的空指针,尽管我不确定为什么它不会在两个函数调用之间打印printf语句,但getInputs函数确实可以工作。谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66893892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档