我试图在c ++中定义一个数组
double array[592];
我犯了一个错误并使用“sizeof”命令而不是size来限制一个一个接一个地打印元素的循环。因此,循环读取数组索引直到索引4736.虽然这些位置不存在,但是在592之后,我在所有位置都得到垃圾而不是分段错误。我想知道为什么我没有得到分段错误。
答案 0 :(得分:1)
sizeof
为您提供数组占用的字节数,而不是它所包含的元素数。因此,double
在您的系统上需要8个字节,结果应该变得清晰。
答案 1 :(得分:0)
sizeof(array) // Returns 592 * sizeof(double)
给出数组占用的总字节数。