Shr*_*roy 1 c++ memory-management
我有一台64位的i7机器.假设我为n个32位整数分配内存.在分配中实际使用了多少个物理寄存器:n还是n/2?
我试着编写以下简单程序来查找.
#include <iostream>
#include <cstdlib>
using namespace std;
int main (int argc, char *argv[]) {
int a[4];
cout << &a[0] << "\t" << &a[3] << endl;
cin.ignore (1);
return 0;
} // End main ()
Run Code Online (Sandbox Code Playgroud)
输出是:
0018FA04 0018FA10
Run Code Online (Sandbox Code Playgroud)
它们似乎比它们应该更加分开.为什么不是地址04和07?这是否意味着系统实际上分配了四个(或更多)整数,而不是将四个32位整数打包成两个64位寄存器?
在此先感谢您的帮助.
归档时间: |
|
查看次数: |
1003 次 |
最近记录: |