Динамическое выделение памяти под массивы char C++
Хочу создать динамический массив у̶к̶а̶з̶а̶т̶е̶л̶е̶й̶ на строки char без использования string и vector и самостоятельно их заполнить, а затем вывести их на экран. Недавно начал изучать плюсы и захотелось именно таким образом попробовать создать массив со строками.
#include <iostream>
const int size = 4;
int main()
{
system("chcp 1251");
system("cls");
char* pt = new char[size];
for (int i = 0; i < size; ++i)
{
std::cout << "Введите строку: " << std::endl;
std::cin.getline(pt+i, 20);
}
for (int i = 0; i < size; ++i)
{
std::cout << "Строка: "<< (pt+i) << std::endl;
}
return 0;
}
Но, к сожалению, он не выводит на экран полностью отдельные строки. Подскажите, где ошибка.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Попробуйте так:
char** pt = new char*[size];
for (int i = 0; i < size; ++i)
{
char buf[100];
std::cout << "Введите строку: " << std::endl;
std::cin.getline(buf,100);
pt[i] = new char[strlen(buf)+1];
strcpy(pt[i],buf);
}
for (int i = 0; i < size; ++i)
{
std::cout << "Строка: "<< pt[i] << std::endl;
}
