8.11 我见到了这样的代码  char *p = malloc(strlen(s) + 1); strcpy(p, s);  难道不应该是 malloc((strlen(s) + 1) * sizeof(char))?

永远也不必乘上 sizeof(char), 因为根据定义, sizeof(char) 严格为1。 另一方面, 乘上 sizeof(char) 也没有害处, 有时候还可以帮忙为表达式 引入 size_t 类型。 参见问题 8.5

参考资料: [ISO, Sec. 6.3.3.4]; [H&S, Sec. 7.5.2 p. 195]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)