【发布时间】:2012-11-10 19:37:28
【问题描述】:
您能帮我解释一下为什么这段代码没有按预期打印 '*' 字符的 char 数组吗?
int n = 10;
char *cs = (char*) calloc(n + 1, sizeof(char));
for (int i = 0; i < n; i++) {
cs[i] = '*';
}
cout << cs << endl;
谷歌搜索了很多,但在任何地方都没有发现同样的问题..
谢谢!
【问题讨论】:
-
如果我以明显(至少对我而言)的方式完成代码,我不会重现。请给出完整代码。
-
@H2CO3 由于
calloc,所以存在终止零。 -
calloc()应该这样做。 @H2CO3 -
这就像一个魅力,看看:link to ideone。
-
代码运行良好ideone.com/49GA6P