我正在做一个学校的C项目。在项目中,我在char holdReference [48]中保留了48个字符,每8个字符必须组成1个字符串。因此,例如:
holdReference[0] = '0';
holdReference[1] = '0';
holdReference[2] = '0';
holdReference[3] = '0';
holdReference[4] = '1';
holdReference[5] = '2';
holdReference[6] = 'd';
holdReference[7] = '8';
....
由8个字符组成的结果字符串保存在char HexReference [6] [9]中,这意味着HexReference包含6个长度为8位的字符串。
这是我的代码:
char HexReference[6][9];
int hx = 0;
int indexxx;
int hex = -1;
while(hx<charNumber)
{
if(hx%8 == 0)
{
indexxx = 0;
hex++;
HexReference[hex][indexxx] = holdReference[hx];
indexxx++;
}
else
{
HexReference[hex][indexxx] = holdReference[hx];
indexxx++;
}
hx++;
}
printf("%s" , HexReference[0]); --> prints 000012d8/000017f3
问题是,即使HexReference [0]必须保留000012d8,也将在控制台上打印000012d8 / 000017f3。 000017f3必须保留在HexReference [1]中。
如果您能尽快帮助我,我将非常感谢。
最佳答案
您忘记在每个字符串的末尾为空终止符“ \ 0”分配足够的空间。
另外,由于要一一放置字符,因此还需要手动添加null终止符。