【发布时间】:2011-03-10 21:00:53
【问题描述】:
我看到人们经常写C代码比如:
char *ptr = malloc(sizeof(char)*256);
真的有必要吗?该标准根据定义说sizeof(char)==1,所以只是写没有意义:
char *ptr = malloc(256);
【问题讨论】:
-
还值得注意的是 sizeof() 运算符是在编译时评估的,因此使用 sizeof() 不会影响运行时性能。 (除了在运行时指定数组长度的情况,但这不是您使用的示例。)
-
calloc “稍微慢一些,因为它必须用零清除分配的内存。