- 论坛徽章:
- 0
|
我的代码是:
#include <stdlib.h>;
#include <stdio.h>;
#include <string.h>;
struct sStuData
{
int No;
char cName[5];
char cBirthAddr[8];
char cSex[5];
//char cClass[10]
};
int main()
{
char *buf;
char buf1[15];
struct sStuData stuData;
printf("int length = %d\n",sizeof(int));
printf("length = %d\n",sizeof(struct sStuData));
printf("no length = %d\n",sizeof(stuData.No));
printf("cname length = %d\n",sizeof(stuData.cName));
printf("cbirthaddr length = %d\n",sizeof(stuData.cBirthAddr));
printf("cSex length = %d\n",sizeof(stuData.cSex));
//printf("cClass length = %d\n",sizeof(stuData.cClass));
buf=malloc(15);
memcpy(buf1,"abcdefghijklml",strlen("abcdefghijklml" );
memcpy(buf,buf1,10);
printf("buf = %s\n",buf);
memset(stuData.cName,0x00,5);
memcpy(stuData.cName,buf,5);
printf("stuData.cName = %s\n",stuData.cName);
}
结果是:
int length = 4
length = 24
no length = 4
cname length = 5
cbirthaddr length = 8
cSex length = 5
buf = abcdefghij
stuData.cName = abcd暨W
我想知道 结构体内存 应该是22
但是 结果是24。
还有成员 间的地址是连续分配的吗? |
|