Страницы

Поиск по вопросам

суббота, 13 октября 2018 г.

Как правильно склеить две строки в Си?

При исполнении кода #include #include
int main() { char *first = "first"; char *second = "second"; char *third = strcat(first, second); } происходит ошибка сегментирования.


Ответ

Проблема в том, что функция strcat не выделяет память, а копирует из одной строки в другую. Поскольку длина первой строки меньше, чем длина второй, то память перетирается. Нужно изменить код, например, так. #include #include
int main() { char first[7] = "first"; char second[7] = "second"; char *third = strcat(first, second); }

Комментариев нет:

Отправить комментарий