1

在 C 中,我这样做:

char* buffer=p->content;       // p is a struct type and content is a char*
printf("buffer:%s\n",buffer);  

我的输出是这样的:

@uffer: �@��^��0z

我不太清楚为什么会得到�@��^��0z,但我怀疑这与我错误地递增 mypointer 有关。

我的主要问题是:为什么我的“b”被转换为“@”符号?????????

4

2 回答 2

2

看起来内存buffer指向的内存没有初始化,所以你得到的是随机数据。

你真的需要告诉我们p->content从哪里来(设置)。

于 2012-09-28T01:49:34.510 回答
2

您正在打印的垃圾数据恰好包含一个称为回车的行式打印机控制字符,您的显示设备将其解释为将光标移动到行首的命令。然后,如果出现 @ 字符,它会覆盖输出的第一个字符。

于 2012-09-28T02:02:12.877 回答