gpt4 book ai didi

c - 在结构内部声明时,char[] 和 char* 有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:05 24 4
gpt4 key购买 nike

我正试图研究一段代码,但有些事情让我感到困惑。

当我们使用下面的结构时:

    struct sdshdr {
int len;
int free;
char buf[];
};

我们将这样分配内存:

    struct sdshdr *sh;
sh = zmalloc(sizeof(struct sdshdr)+initlen+1);

那么,当在 struct 中声明了 buff 时,char[]char* 之间有什么区别?

char[]是不是表示继续地址?

最佳答案

区别很简单 char buf[] 声明了一个灵活的数组; char * buf 声明了一个指针。数组和指针在很多方面并不相同。例如,您将能够在初始化后直接分配给指针成员,但不能分配给数组成员(您将能够分配给整个结构)。

关于c - 在结构内部声明时,char[] 和 char* 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19063152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com