gpt4 book ai didi

c - atoi() 使程序崩溃

转载 作者:行者123 更新时间:2023-11-30 20:27:51 31 4
gpt4 key购买 nike

我对 atoi() 有一个奇怪的问题:我有一个字符串(比如说 str),类似于“aaaa 1111\0”(我打印并检查过 - 确实是这样)。我尝试在 str+5 上执行 atoi,但程序崩溃了。我在前后一行添加了一条日志,我可以看到前面的一行,但后面什么也没有。所以问题就出在这一行。我也打印了str+5,结果符合预期,所以字符串也没有问题。

然后我尝试创建一个大小为 5 的 char[] 数组,复制 4 个数字并在末尾添加 null 终止。它仍然崩溃...

添加代码:

int int_pin;
char buff[MAX_LEN + PIN_LEN + 1]; //MAX_LEN = 5, PIN_LEN = 4
//reading size of MAX_LEN + PIN_LEN from file to buff...
buff[MAX_LEN + PIN_LEN] = '\0';
int_pin = atoi(buff+MAX_LEN); //crashes

编辑:我也尝试了最简单的代码: char a[] = "1234"; int_pin = atoi(a);

它仍然崩溃。您知道为什么一个简单的 atoi() 调用会使我的程序崩溃吗?

最佳答案

您添加了#include <stdlib.h>吗?包含 atoi 函数?

我试过了,它有效:

#include <stdio.h>
#include <stdlib.h>
int main(void) {
char string[] = "aaaa 1111";
int int_pin = atoi(string+5);
printf("%d", int_pin); /* returns 1111 as intended */
return 0;
}

关于c - atoi() 使程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265288/

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