70,023
社区成员




64
16
------------------
(program exited with code: 0)
Press return to continue
typedef struct qnode
{
char data;
struct qnode * next;
}QNode;
然后你在输出sizeof(QNode),大小为8,因为data之后补齐了3个字节,实际指针还是4个字节,内存布局如下图所示:
typedef struct qnode
{
char data;
int next;
}QNode;
大小也为8,再比如:
typedef struct qnode
{
char data1;
char data2;
int next;
}QNode;
的大小也为8,但是你要把data2和next位置换一下,大小就变成12了,如下:
typedef struct qnode
{
char data1;
int next;
char data2;
}QNode;
大小为12。
[/quote]
懂了,thanks
typedef struct qnode
{
char data;
struct qnode * next;
}QNode;
然后你在输出sizeof(QNode),大小为8,因为data之后补齐了3个字节,实际指针还是4个字节,内存布局如下图所示:
typedef struct qnode
{
char data;
int next;
}QNode;
大小也为8,再比如:
typedef struct qnode
{
char data1;
char data2;
int next;
}QNode;
的大小也为8,但是你要把data2和next位置换一下,大小就变成12了,如下:
typedef struct qnode
{
char data1;
int next;
char data2;
}QNode;
大小为12。
typedef struct qnode
{
char data;
struct qnode * next;
}QNode;
然后你在输出sizeof(QNode),大小为8,因为data之后补齐了3个字节,实际指针还是4个字节,内存布局如下图所示:
typedef struct qnode
{
char data;
struct qnode * next;
}QNode;
#pragma pack(1)
typedef struct qnode
{
char data[50];
struct qnode * next;
}QNode;
typedef struct
{
QNode * front;
QNode * rear;
}LiQueue;
#pragma pack()