C - не работает копирование строк по указателю

не работает копирование строк по указателю.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char *src = "abcdefgh[xx]ggggg";
    printf("src: |%s|\n", src);
    char *dst = malloc(strlen(src));
    while((*dst++ = *src++));
    printf("dst: |%s|\n", dst);
    return 0;
}

Проблема в том, что кусок кода должен копировать строку в другую и печатать её. В дебаггере, в строку копируется какой-то мусор, а печатается какой-то бред. (Каждый раз разный). При этом, если использовать массивы - всё прекрасно.

Почему так?

Спасибо.


Ответы (0 шт):