我不明白这是如何工作的。说我有以下内容:
void print(char* str, int len)
{
int i = 0;
for (i=0; i<len; i++)
{
if (str[i]=='\0')
printf(" ");
else
printf("%c", str[i]);
}
printf("\n\n");
}
char* sym4 = "=";
char str2[strlen(var)+strlen(sym4)];
unsigned long temp1 = 0x00000008;
unsigned char* nTableSize = (unsigned char*)&temp1;
memcpy(str2, var, strlen(var));
memcpy(str2+strlen(var), sym4, 1);
memcpy(str2+strlen(var)+1, nTableSize, 4);
print(str2, 5);
print(str2, 6);
并运行它会给出输出:
var=
var
所以很明显出了点问题(而且它把我的程序的其余部分弄乱了)。为什么 nTableSize 不能以打印 5 个字符导致与 6 个不同的输出的方式正确复制到 str2?...