Одна проблема в том, что вы не инициализируете char strDestination[50];
.Таким образом, он не представляет допустимую строку, и когда вы пытаетесь напечатать ее здесь:
printf("The destination was\t:\t%s\n", dst);
Это неопределенное поведение.Вы можете инициализировать его так:
char strDestination[50] = {'\0'};
Это явно устанавливает первый char
в '\0'
, делая его допустимой строкой.И остальная часть массива затем инициализируется по умолчанию '\0'
в любом случае.
Кроме того, после цикла while
ваши src
и dst
будут указывать на нулевой терминатор в концестроки, поэтому, когда вы печатаете их, он ничего не печатает.Вместо этого сохраните копии оригинальных указателей и напечатайте их:
void copyStringPtr(char *src, char *dst)
{
char* srcOriginal = src;
char* dstOriginal = dst;
...
printf("The source is\t\t:\t%s\n", srcOriginal);
printf("The destination is\t:\t%s\n\n", dstOriginal);
}