Nya*_*yan 15 c malloc sizeof c99 char
嗨,最近我在网上看到了很多代码(也在SO上),如:
char *p = malloc( sizeof(char) * ( len + 1 ) );
Run Code Online (Sandbox Code Playgroud)
为什么sizeof(char)?这不是必要的,不是吗?或者只是风格问题?它有什么优势?
bra*_*jam 18
是的,这是一种风格问题,因为你希望sizeof(char)永远是一个风格.
另一方面,它sizeof(foo)在做一个时非常习惯malloc,最重要的是它使代码自我记录.
也许更适合维护.如果您要切换char到wchar,则切换到
wchar *p = malloc( sizeof(wchar) * ( len + 1 ) );
Run Code Online (Sandbox Code Playgroud)
没有多想.转换声明char *p = malloc( len + 1 );需要更多的思考.这都是为了减少心理开销.
正如@Nyan在评论中建议的那样,你也可以做到
type *p = malloc( sizeof(*p) * ( len + 1 ) );
Run Code Online (Sandbox Code Playgroud)
对于零终止字符串和
type *p = malloc( sizeof(*p) * len ) );
Run Code Online (Sandbox Code Playgroud)
对于普通缓冲区.
| 归档时间: |
|
| 查看次数: |
78344 次 |
| 最近记录: |