sizeof+结构体
答:sizeof当作了求数组元素的个数是不对的,求数组元素的个数有下面两种写法:int c1 = sizeof( a1 ) / sizeof( char ); // 总长度/单个元素的长度 int c2 = sizeof( a1 ) / sizeof( a1[0] ); // 总长度/第一个元素的长度。注意数组名做函数参数传递 时退化为指针。 7、结构体的sizeof struct ...
答:sizeof是指这个数据类型分配的单元内存大小,比如int 是4,等等,所以sizeof(struct date)=4+4+4=12, union类型比较特殊,它的长度大小时内部成员中最大的一个的长度,所以sizeof(m)是其中long的值,也就是8
答:为此,编译器默认会对结构体进行处理,让宽度为2的基本数据类型(short等)都位于能被2整除的地址上,让宽度为4的基本数据类型(int等)都位于能被4整除的地址上,以此类推,这样,两个数中间就可能需要加入填充字节,5需要填充3个空格使之为4的倍数8,所以整个结构体的sizeof值就成为8。
答:声明了一个结构体变量,无论是否初始化,它都要占用内存空间,空间大小为 sizeof(struct name);如果只声明为一个结构指针,那么占用内存空间4字节。sizeof(struct name *);
答:让我们先看一个结构体:struct S1{char c;int i;};问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为8。Why为什么受伤的总是我请不要沮丧,我们来好好琢磨一下sizeof...
答:malloc(sizeof)是C语言,是向系统申请内存空间的函数。sizeof一般用于获取字符串的长度,是处理字符串的重要工具。同时,sizeof在数据结构这门课中是创建结点必要的命令。例:*head=(node*)malloc(sizeof(node)); [注]node为结构体。sizeof(node)表示获取node类型的长度,malloc(sizeof(node))表示在...
答:用sizeof就可以了。比如 结构体是struct test 定义 struct test a[100];要得到这个100的话就用 sizeof(a)/sizeof(struct test)总空间,除以每个元素的空间,就是个数。
答:sizeof(int)=2。比如这里x应该是个int型数组,那么用这个数组的大小,除以int型数据的大小,就得到这个数组的长度。sizeof是计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。在32位的系统中,sizeof(int)的值为4。如果x是int型的数组,则sizeof(x)/sizeof(int)代表x的...
答:,即使你给这个CString赋值为“1111111111”这样一个串,它在你用sizeof计算大小时还是4个字节;我们定义结构体,特别是当编写一些通信用的程序,也就是说通过网络向其他主机发送数据的这种程序,我们一般对于字符串都是定义成char[]的,而且还都是按照1字节对齐的。这样在计算发送数据长度时不容易出错。
答:include <stdio.h> struct node { int data;struct node *next;};struct node lnode;int main(){ printf("struct node size = %d\n",sizeof(struct node));printf("node size = %d\n",sizeof(node));printf("lnode size = %d\n",sizeof(lnode));return 0;} 输出:struct node ...
网友评论:
鱼隶13179185701:
C++结构体 sizeof -
22624戈舍
: 不太好解释呢 因为sizeof实际上是求某一个变量或者数据类型在运行时,所占用的内存大小 比如这个结构体 有三个元素,分别是int char float类型,按照现在32位机和普遍4字节对齐的编译系统,这个sizeof会是12 即int 4个字节,char一个字节,...
鱼隶13179185701:
结构体的sizeof问题 -
22624戈舍
: 内存地址要对齐.. 结构体每个保存都是按照最长的定义类型来的.字节对齐的细节和编译器实现相关,但一般而言,满足三个准则:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2) 结构体每个成员相对于结构体首...
鱼隶13179185701:
C语言中的结构体的大小如何计算 -
22624戈舍
: 用sizeof这个操作符来确定你的程序的话如下int size=sizeof(student);由于C语言会对自定义类型进行存储优化,可以实际大小比把结构体里的所有原子类型加起来要大,
鱼隶13179185701:
C++中结构体的大小 -
22624戈舍
: 结构体(struct)的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题.先看下面定义的两个结构体.struct { char a; short b; char c; }S1; struct { char a; char b; short c; }S2; 分别用程序测试得出sizeof(S1)=...
鱼隶13179185701:
c语言里sizeof 对结构使用的话返回的是什么值?最好能举例说明 -
22624戈舍
: 结构体的字节数
鱼隶13179185701:
c语言白痴问题,结构体变量中malloc(sizeof(...))中的sizeof(...)好像没有用啊?(在线) -
22624戈舍
: x=(b)malloc(sizeof(a)); 这句没任何问题.sizeof(a)就是结构体的大小(两个int的size之和).如果用sizeof(b)则有问题,因为sizeof(b)只是指针本身的大小. ANSI/ISO C规定:malloc(0)的结果由编译器自己决定,可以返回NULL指针,也可以返...
鱼隶13179185701:
sizeof()就结构体字节大小,字节对齐问题!如下题: -
22624戈舍
: 第一种情况:241 + (7) + 4 + 1 + (3) + 8解释: 1 : char t (7):因为这个结构体中最长的是double,占8位,所以补7位 4:int k 1 : char i (3):这里涉及到一种规则,成员对齐有一个重要的条件,即每个成员按自己的方式对齐.其对齐的规则是,每个成...
鱼隶13179185701:
问下 结构体问题 和 sizeof 问题 -
22624戈舍
: sizeof值等于所占用的内存字节数假设 sizeof(UINT32 )=4那么 若结构体一共有2个UINT32定义,sizeof(结构体名)=2*4=8,占用8个内存字节数.如此类推.
鱼隶13179185701:
使用sizeof(S1)获取到得该结构体得大小是多少 -
22624戈舍
: 使用sizeof(S1)获取到得该结构体得大小是12. 计算sizeof的规则大致如下: 1.空的class和struct大小为1. 如果在类和struct中有成员变量的话,就不考虑这个为空时的1. 2.如果class和struct中有成员变量,则计算方式是将成员变量对齐之后累加....
鱼隶13179185701:
谁给我讲讲结构体中的SIZEOF,不要粘贴的大段的东西~ -
22624戈舍
: 我来说说,,struct date { float cat; double cow; int dog;int ww;} 这个结构体中:成员所占的空间分别为:4,8,4,4 A B C D 操作系统首先会判断,第一个A<8;那么就将A+B和8比较,由于12>8,那么不可能将A和B放在一起一次读出,故A占8个字节,B=8,刚好占8个字节;C+D=8;也占8个字节,,,加起来就是24 struct date { float cat; double cow; int dog;double ww;}, 4 8 4 8 A B C D 同理,,A<8,A+B>8,所以A B分别占8个字节,,C D也是一样,,结果就是32了,,就是这样了,