У меня есть следующий C код:
char *a, *b;
int count;
a = malloc(10);
b = malloc(10);
for(count=0;count<10;count++){
b[count] = 'a';}
memcpy(&a, &b, 10);
for(count=0;count<10;count++){
printf("%c %c\n", a[count], b[count]);}
free(b);
for(count=0;count<10;count++){
printf("%c, ", a[count]);}
Однако на выходе первые 8 элементов массива, похоже, удаляются путем освобождения b:
./a.out
a a
a a
a a
a a
a a
a a
a a
a a
a a
a a
, , , , , , , , a, a,
Может кто-нибудь попытаться объяснить, что здесь происходит? Кажется, я не могу найти причину этого.