prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 7.8

我看到像这样的代码

	char *p = malloc(strlen(s) + 1);
	strcpy(p, s);
难道不应该是malloc((strlen(s) + 1) * sizeof(char))?


从来没有必要乘以sizeof(char),因为sizeof(char)根据定义,正好是 1。(另一方面,乘以sizeof(char)并无坏处,有时也可能通过引入size_t到表达式中而有益;参见问题 7.15。) 另请参见问题 8.98.10

参考文献:ISO Sec. 6.3.3.4
H&S Sec. 7.5.2 p. 195


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管