又是考查内存对齐和指针理解, 简单东西。

版权声明:本文为博主原创文章,转载时请务必注明本文地址, 禁止用于任何商业用途, 否则会用法律维权。 https://blog.csdn.net/stpeace/article/details/77800139

       如下: 又是考查内存对齐和指针理解, 简单东西。

#include <iostream>
using namespace std;

#pragma pack(4)

struct X
{
	int a;
	char b[3];
	short c;
	char d[3];
	int e;
	char f;
	char g;
};

int main() 
{
    X x;
    X *p = &x;
    
	cout << sizeof(X) << endl;  // 24
	
	cout << (char*)(p + 10) - (char*)p << endl;  // 240
	
	cout << (char*)((int *)p + 10) - (char*)p << endl;  // 40
	
	cout << (char*)((char *)p + 10) - (char*)p << endl;  // 10
	
	return 0;
}
       不多说。



展开阅读全文

没有更多推荐了,返回首页