在C

时间:2019-01-17 14:57:57

标签: arrays memcpy

我有以下代码。有人可以告诉我它是否有问题。

unsigned char str2[80];
memset(str2, 0x00, 15+hashLength);
int offset=0;
memcpy(str2+offset, "      \"md\" : \"", 14);
offset += 14;
memcpy(str2+offset, hash, hashLength);
offset += hashLength;
memcpy(str2+offset, "\"", 1);
offset += 1;
str2[offset] = '\0';
printf("\n\nstr2 : [%s]\n\n", str2);

输出看起来像这样:

str2 : [      "md" : "ËFÇDÈ5A <90>^N^^ax^L^XÔ01 <8b>"]

第一个和最后一个memcpy工作正常。从另一个阵列复制的那个是有问题的那个。
哈希的内容是:

cb46c744c83541a0900e1e61780c18d43031a08b

哈希定义为:

unsigned char hash[64];

预期输出为(忽略[]):

[      "md" : "cb46c744c83541a0900e1e61780c18d43031a08b"]

0 个答案:

没有答案