Я передаю пустой массив символов, который мне нужно рекурсивно заполнить, используя strcat()
. Однако в отладчике VS массив не пуст, он полон странных ненужных символов, которые я не узнаю. Затем strcat () добавляет к концу этих ненужных символов, а не к началу массива.
Я также пытался encoded[0] = '\0'
очистить мусор перед передачей массива, но затем strcat () ничего не добавляет к рекурсивному вызову.
Это код, который предоставляет массив и вызывает рекурсивную функцию:
char encoded[512];
text_to_binary("Some text", encoded);
Это рекурсивная функция:
void text_to_binary(const char* str, char* encoded)
{
char bintemp[9];
bintemp[0] = '\0';
while(*str != '\0')
{
ascii_to_binary(*str, bintemp);
strcat(encoded, bintemp);
str++;
text_to_binary(str, encoded);
}
}
Что происходит?
пс. Я не могу использовать std::string
- я застрял с char*
.
Редактировать: Это символ барахла в массиве:
ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ ...