C++数组存储有关问题
C++数组存储问题例如:int array[10],在内存中是连续存储的,但是其长度信息在哪里存放着,当使用sizeof的时
C++数组存储问题
例如:int array[10],在内存中是连续存储的,但是其长度信息在哪里存放着,当使用sizeof的时候,sizeof是怎么知道array这个标识符是指向一个长度为10的int型数组的?
[解决办法]
应为数组分配是连续的,所以肯定有个东西记录其大小的,那个指针就在:开辟的数组的前面内存单元内,有个指针,表示其大小~~!
[解决办法]
[解决办法]7#mingliang1212跟我想的差不多
LZ可以在调试程序的时候查看memory
可以发现在这个数组的首地址前有一段空间是‘空’着的
这个‘空’着的大小根据编译器的不同而不同
这段空间就存储了数组的相应信息
[解决办法]我在VS里测试,看到的块大小存储在指针所指位置前16个字节处,中间还有一些信息无从猜测意义。
存在栈里是不会保存数组大小信息的,就是堆里那个大小也不是给sizeof用的,而是给内存回收函数用的。