> 文档中心 > C语言笔记

C语言笔记

structA与structB是两个不同的结构体,它们的长度大小分别为structA为8,而structB为12,
因为char[]是数组,C99允许不指定大小的数组,而这样则不占用内存空间,而*buf是指针,它占用了指针的大小。
使用structA的好处就是可以malloc内存的时候,直接减少malloc调用次数。

但是如果使用structB则需要以下方式申请内存空间:

当然也可以使用以下方式:

但是这样做的缺点很明显:
1,申请多了一个字节空间;
2,多做了一次指针操作。