gpt4 book ai didi

c - 使用 malloc 分配 char 数组

转载 作者:太空狗 更新时间:2023-10-29 16:35:34 24 4
gpt4 key购买 nike

考虑以下行:

char *p = malloc( sizeof(char) * ( len + 1 ) );

为什么使用 sizeof(char)?没必要吧?还是只是风格问题?

它有什么优势?

最佳答案

是的,这是样式问题,因为您希望 sizeof(char) 始终为一个。

另一方面,在执行 malloc 时使用 sizeof(foo) 是一种习惯用法,最重要的是它使代码自记录。

也许也更利于维护。如果你从 char 切换到 wchar,你会切换到

wchar *p = malloc( sizeof(wchar) * ( len + 1 ) );

没有多想。而转换语句 char *p = malloc( len + 1 ); 则需要更多思考。这一切都是为了减少精神负担。

正如@Nyan 在评论中建议的那样,您也可以这样做

type *p = malloc( sizeof(*p) * ( len + 1 ) );

对于以零结尾的字符串和

type *p = malloc( sizeof(*p) * len ) );

对于普通缓冲区。

关于c - 使用 malloc 分配 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3115564/

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