@sany,
вот мой весь код:
int _tmain(int argc, _TCHAR* argv[])
{
int i;
unsigned char *src, *dst;
src = (unsigned char *)malloc(8192*1056 + 8);
dst = (unsigned char *)malloc(8192*1056);
if(src != NULL)
{
for(i = 0; i < 16; i++)
if (i < 8)
src[i] = 0;
else src[i] = (unsigned char) i;
}
if(dst != NULL)
{
for(i = 0; i < 16; i++)
dst[i] = (unsigned char) i;
}
else printf("Can't allocate memory.\r\n");
for (i = 0; i < 16; i++)
printf("%02x ", src[i]);
printf("\r\n");
printf("\r\n");
for (i = 0; i < 16; i++)
printf("%02x ", dst[i]);
printf("\r\n");
printf("\r\n");
memcpy(dst, src+8, 8192*1056);
printf("Copied!\r\n");
for (i = 0; i < 16; i++)
printf("[%%02x ", src[i]);
printf("\r\n");
printf("\r\n");
for (i = 0; i < 16; i++)
printf("%02x ", dst[i]);
printf("\r\n");
printf("\r\n");
if (memcmp(src, dst, 8192*1056)==0)
printf("Equal!\r\n");
else
printf("Not equal!\r\n");
getchar();
free(src);
free(dst);
return 0;
}
и вот что он выводит:
00 00 00 00 00 00 00 00 08 09 0a 0b 0c 0d 0e 0f
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
Copied!
00 00 00 00 00 00 00 00 08 09 0a 0b 0c 0d 0e 0f
08 09 0a 0b 0c 0d 0e 0f cd cd cd cd cd cd cd cd
Not equal!
то есть не равны массивы после копирования по первым 8192*1056 байтам