C++ 为不存在的内存位置读取垃圾而不是segfault

C++ 为不存在的内存位置读取垃圾而不是segfault,c++,segmentation-fault,out-of-memory,C++,Segmentation Fault,Out Of Memory,我试图用c语言定义一个数组++ double array[592]; 我犯了一个错误,使用“sizeof”命令而不是size来限制一个循环,该循环逐个打印元素。因此,循环一直在读取数组索引,直到索引4736。虽然这些位置不存在,但我得到的是垃圾,而不是592之后所有位置的分段错误。我想知道为什么我没有得到分段错误。sizeof提供数组占用的字节数,而不是它包含的元素数。因此,由于double需要系统上的8个字节,因此结果应该变得清晰 sizeof(array) // Returns 592 *

我试图用c语言定义一个数组++

double array[592];

我犯了一个错误,使用“sizeof”命令而不是size来限制一个循环,该循环逐个打印元素。因此,循环一直在读取数组索引,直到索引4736。虽然这些位置不存在,但我得到的是垃圾,而不是592之后所有位置的分段错误。我想知道为什么我没有得到分段错误。

sizeof
提供数组占用的字节数,而不是它包含的元素数。因此,由于
double
需要系统上的8个字节,因此结果应该变得清晰

sizeof(array) // Returns 592 * sizeof(double)

提供数组占用的总字节数

sizeof是以字节为单位的大小…您至少可以先读取。请尝试打印
sizeof(双精度)
。然后做
sizeof(array)/sizeof(double)
。谷歌又倒下了吗?