相关疑难解决方法(0)

131
推荐指数
4
解决办法
12万
查看次数

在实际的 CPU 上,未初始化变量的值从何而来?

我想知道变量的初始化方式:

#include <stdio.h>
int main( void )
{
    int ghosts[3];
    for(int i =0 ; i < 3 ; i++)
    printf("%d\n",ghosts[i]);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这给我带来了随机值,例如 -12 2631 131 ..它们来自哪里?

例如,x86-64 Linux 上的 GCC:https ://godbolt.org/z/MooEE3ncc

我有一个猜测来回答我的问题,无论如何它都可能是错误的:
内存的寄存器在“清空”后获得 0 和 1 之间的随机电压,这些值“四舍五入”为 0 或 1,并且这些随机值取决于在某事上?!也许寄存器的制作方式?也许内存的容量会以某种方式发挥作用?甚至可能是温度?!!

c assembly cpu-architecture

5
推荐指数
3
解决办法
764
查看次数