Строки в c оканчиваются на \0
. Если вы попытаетесь обработать массив символов, который не заканчивается на \0
, как строку (например, printf
при ее использовании), он будет просто переполнен, пока вы не нажмете следующую \0
, которая окажется в вашей куче .
Короче говоря, вам нужно явно указать, что у вас есть \0
в конце вашей строки:
/* Added an extra char for the '\0' */
char command[9];
for (size_t i = 0; i < 8 ; i++){
command[i] = c_header[i];
}
command[7] = 's';
command[8] = '\0';