【发布时间】:2017-09-23 07:42:15
【问题描述】:
作为标题,我对在 c 中使用 char* 有一些疑问。例如,如果我写这个
char *a = calloc(5, 5);
a[0] = '1';
a[1] = '1';
a[2] = '1';
a[3] = '1';
a[4] = '1';
printf("a = %s, length = %d", a, strlen(a));
输出是
a = 11111, length = 5
为什么没有'\0' strlen 工作正常?谁能帮我理解一下?
【问题讨论】:
-
运气不好......所以不要投票给那些 cmets
-
char *a = calloc(5, 5)对应于char a[25] = {0};。 -
length = %d也应该是length = %lu... -
好吧,现在只是运气不好。
-
@tonylin 无论如何都不要修改问题。