Вы выполняете цикл от 0 до 24 по string1
, который был инициализирован только strlen("HELLO WORLD") + 1
байтами.Байты, проиндексированные от 12 до 24, там не были инициализированы, и вам не следует пытаться их прочитать.Вы должны использовать calloc()
для выделения string1
или memset()
для его инициализации, например так:
char *string1 = calloc(1, 45);
или
char *string1 = malloc(45);
memset(string1, 0, 45);
Или вы можете инициализировать string3
в нули с помощью вышеуказанных методов, а затем скопируйте только strlen(string1)
байт.