gpt4 book ai didi

c - C 中 strtol() 的奇怪崩溃

转载 作者:太空狗 更新时间:2023-10-29 15:18:14 24 4
gpt4 key购买 nike

我用 stdlib 库中的 strtol() 做了一些证明,因为我有一个总是崩溃的程序,我发现它工作得很好:

main(){
char linea[]="0x123456",**ap;
int num;
num=strtol(linea,ap,0);
printf("%d\n%s",num,*ap);
}

但是当我添加一个新的声明时,无论它在哪里崩溃都是这样

main(){
char linea[]="0x123456",**ap;
int num;
num=strtol(linea,ap,0);
printf("%d\n%s",num,*ap);
int k;
}

只是添加最后的“int k;”程序在执行 strtol() 时崩溃无法理解原因。我在 Code::Blocks 上这样做

最佳答案

您遇到崩溃是因为您向 strtol 传递了一个未初始化的指针,而 strtol 取消了对它的引用。第一次撞车不是靠运气。

这不会崩溃:

main() {
char linea[]="0x123456", *ap;
int num;
num = strtol(linea, &ap, 0);
printf("%d\n%s", num, ap);
int k;
}

关于c - C 中 strtol() 的奇怪崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com