我需要手动填充一个字符数组。我是这样声明它的:
char* coor = malloc(sizeof(char) * 5);
然后我手动将每个变量分配到其位置:
coor[0] = O_colum;
coor[2] = ((char)(O_row+48));
coor[3] = '-';
coor[4] = D_colum;
coor[5] = ((char)(D_row+48));
(
D_Row
和O_row
都是整数,我需要将这个数字以字符形式输出,而不是ASCII码的等价值;所以我将其加上了+48
。)问题出现在我尝试打印时。如果我使用
printf(" %s", coor)
,它只会打印出前几个字符,我不知道为什么。我使用的是%s
,所以应该打印字符串中所有的字符。
当我这样做时:char *p = "hello";
printf("%s",p);
它会打印出hello
。
sizeof(char)
永远不会与标准定义的1
不同。因此使用它没有任何好处。如果您想始终使用正确的类型,请使用sizeof(*coor)
。 - too honest for this site