Я пишу программу на C, которая принимает n
строки и объединяет их с помощью strcat.Сначала я выделил целевую строку на sizeof(char)*
strlen каждой строки + 1 (для нулевого символа).Затем с помощью for я использую strncat для создания финальной строки.В и я добавляю нулевой символ.
Все идет хорошо, но иногда в начале строки назначения появляются странные символы (например, «?»).Это происходит, когда во время выполнения программы конечная строка короче, чем раньше (во время того же выполнения).
Что-то мне не хватает?
Это код:
size = 0;
for(i = 0; i < n; i++) {
size += sizeof(char)*(strlen(strings[i]));
}
size++;
target = malloc(size);
if(!target) { /** Error handling... */ }
for(i = 0; i < n; i++) {
target = strncat(target, strings[i], strlen(strings[i]));
}
target[size] = '\0';
Спасибо,
—Донован