gpt4 book ai didi

char * buf = malloc(sizeof (char *) * 16) vs char buf[ sizeof (char *) * 16]

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

我正在阅读一个 C 代码来做

char * buf = malloc(sizeof (char *) * 16)

代替

char buf[sizeof (char *) * 16]

有什么区别?好吧,我认为第一个表达式是不必要的,如果 realloc() 没有被调用,还是我想错了?

最佳答案

char buf[sizeof(char*)*16] 是自动分配的数组,一般就是栈。只要 buf 在范围内,并且有足够的堆栈空间,它就有效。

malloc 从一些堆中分配内存。它在该内存被 free() 之前有效。通常,有更多的可用堆。

关于char * buf = malloc(sizeof (char *) * 16) vs char buf[ sizeof (char *) * 16],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9510794/

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