向量的内存位置不连续
Memory Locations of Vectors not Continuous
我在 Kubuntu 20.04 上使用 C++ 并运行了以下代码段:
vector<int> v(10,2);
cout<<sizeof(int)<<"n";
for (int i = 0; i < 10; ++i)
cout<<&(v[i])<<"n";
输出为:
4
0x55967f666f10
0x55967f666f14
0x55967f666f18
0x55967f666f1c
0x55967f666f20
0x55967f666f24
0x55967f666f28
0x55967f666f2c
0x55967f666f30
0x55967f666f34
如果向量将数据按顺序存储在内存中(如上面的块大小 4 字节(,那么为什么在">0x55967f666f18"之后是">0x55967f666f1c"而不是">0x55967f666f22"?
您正在考虑十进制(以 10 为基数(的数字系统,但指针以十六进制系统(以 16 为基数(打印。十六进制是计算中非常重要的系统。
在十六进制中,您有数字:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
地址正确且连续。如果您想在 Base 10 中查看它们,请使用如下转换器:https://www.binaryhexconverter.com/hex-to-decimal-converter
十进制的两个地址是:
94104870874904 94104870874908
相关文章:
- 向量的内存位置不连续
- 有没有办法将不连续的捕获组组合到单个正则表达式中?
- 如何删除 Eigen3 矩阵中某些不连续的行和列?
- 快速排序;分段错误,但找不到位置?
- 如何在 c++/犰狳中去除不连续的索引
- G -FPIC不产生位置独立代码
- 地址在多个指针中不连续
- OpenCV 错误:图像步长错误(矩阵不连续)
- iOS开放声音不是位置
- 如何从特征矩阵中获取不连续的数据"block"?
- C++ 将文本文件中不同行/位置的相同单词与每行中的相同位置对齐
- 递归类型真的是构建不连续的任意大小数据结构的唯一方法吗
- 使用linux功能读取块的不连续运行
- C++ 在不知道位置的情况下删除矢量中的特定值
- 为什么使用 push_back() 赋值时向量元素的地址不连续
- 堆栈溢出,找不到位置
- 如何将可变数量的不连续缓冲区传递给内核
- 为什么我的windows服务不连续写入文件
- 选择Rcpp中的不连续子矩阵
- gluLookAt中的不连续