gpt4 book ai didi

c - "garbage value"是随机的吗?我很确定我的垃圾值只有 1 这可能吗? :o

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:08 25 4
gpt4 key购买 nike

好的,我有我的这个程序:

#include <unistd.h>
#include <stdio.h>
int deCode(int x[2][5])
{
return x[2][4]; // Heres where the "garbage" comes in.
} // calling x[2][4] is non valued function. I can call [0,1][0,1,2,3,4]

int main(void)
{
int newPosition;
int x[2][5]={
{1,3,5,7,9}, //[0][0-4] // row 0
{2,4,6,8,10} //[1][0-4] // row 1
}; //NOTICE NO ROW 2
printf("%d\n", deCode(&x));
}

当我播放这个程序时,我得到了值 1。显然,您可能不会得到相同的解决方案。当我做 [2][1,2,3,5] 时,我得到了真正的垃圾。我只是想知道是不是像百万分之一的机会还是我错过了什么?

最佳答案

绝对不是随机的。它是未定义的。

例如,您可能正在读取另一个 变量。如果该变量是字符数组 \0\0\0\0\0... 你会读到很多零。如果它是 int 数组 1, 1, 1, 1... 你会读到 1。

您经常会看到像 2^32-1 这样的数字,您可能很快就能认出来。当您不小心将 signed int 解释为 unsigned int 时,就会发生这种情况。

调试中的一种策略是将所有内存初始化为0xCC。 .然后你将不会收到原始内存,你会看到 0xCC,这很有可能使你的程序崩溃而不是被静默接受。

关于c - "garbage value"是随机的吗?我很确定我的垃圾值只有 1 这可能吗? :o,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661870/

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