gpt4 book ai didi

c - strtol 出现内存错误未初始化值

转载 作者:行者123 更新时间:2023-11-30 14:54:59 26 4
gpt4 key购买 nike

您好,我制作了一个测试程序,以便在我对以下代码使用 valgrind --track-origins=yes -v ./a.out 时获得如何解决问题的帮助它返回以下错误;

==13192== 1 errors in context 1 of 1:
==13192== Conditional jump or move depends on uninitialised value(s)
==13192== at 0x4E6CEA6: ____strtol_l_internal (strtol_l.c:438)
==13192== by 0x4005EB: main (in Desktop/a.out)
==13192== Uninitialised value was created by a stack allocation
==13192== at 0x40057D: main (in Desktop/a.out)

这是我的测试程序代码。

char newid[2];
char copyfromid[5] = "12345";

char *test, *extra;
int j, i = 0;

int outputNum;

for (j = 3; j < 5; j++) {
newid[i] = copyfromid[j];
i++;
}
test = newid;
outputNum = strtol(test, &extra, 10);
printf("%d", outputNum);

这只是一个测试程序,用于将 copyfromid 中的最后两个字符转换为我正在处理的较大项目的数字,任何帮助都会很有用,谢谢。

最佳答案

  for (j=3;j<5;j++){
newid[i] = copyfromid[j];
i++;
}
newid [i] =0;

您没有添加尾随零,并且 newid 的长度必须至少为 3 个字符

关于c - strtol 出现内存错误未初始化值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46371147/

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