Страницы

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

среда, 3 апреля 2019 г.

Как скопировать массив в динамический массив? (Си)

Есть массив char str[] = "abcdef";
И динамический массив: char *dstr = (char*)malloc(sizeof(char) * N);
Как скопировать str[] в dstr[] ?
P.S. Заранее извиняюсь, если вопрос глупый.


Ответ

Есть 3 способа, нативное копирование области памяти, специальной функцией копирования строк, посимвольный перебор массива и запись в dstr
memcpy(&str, &dstr, strlen(str) + 1); // Копирование области памяти

strcpy(dstr, str); // Специальная функция для строки

// Перебор массива циклом.
int strsize = strlen(str) + 1; for(int i = 0; i < strsize ; i++) { dstr[i] = str[i]; }
Имейте ввиду, в обоих случаях вы должны быть уверены что размер dstr больше на 1 чем длина строки str

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

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