结构体变量和结构体指针

蔚落 2023-02-27 10:57 101阅读 0赞

结构体变量分配结构体本身大小的空间,结构体指针分配4个字节,其实任何类型的指针都是分配四个字节的指针空间。
所以:

  1. A a[3]; //a里面是三个A变量,所以分配三个结构体大小
  2. A *a; //a是一个指针,分配4个字节,就算A再大,a也只是4个字节,因为任何类型的指针都是4个字节。要使用a,必须先要对指针初始化,也即分配空间了。

如:

  1. A *a;
  2. a = (A*)malloc(sizeof(A));

也就是如果在结构体中,定义了一个指针,那么会分配4个字节,但是这个指针你无法使用,你必须自己malloc分配空间后,才可以使用这个指针。

结构体内的指针本身也是占4或者8个字节的,只是指针指向的地址(内存区域)需要自己malloc分配。

发表评论

表情:
评论列表 (有 0 条评论,101人围观)

还没有评论,来说两句吧...

相关阅读

    相关 结构变量结构指针

    结构体变量分配结构体本身大小的空间,结构体指针分配4个字节,其实任何类型的指针都是分配四个字节的指针空间。 所以: A a[3]; //a里面是三个A变量,所以分

    相关 结构指针

    一、结构体指针的定义与使用 当一个指针变量用来指向一个结构体变量时,称之为结构体指针变量。 结构体指针变量的值是所指向的结构体变量的起始地址。通过结构体指针即可访问该

    相关 go中结构结构变量

    一 结构体和结构体变量的区别和联系 1 结构体是自定义的数据类型,代表一类事物。 2 结构体变量(实例)是具体的,实际的,代表一个具体变量。 二 结构体变量在内存的