Требования к упражнению заключаются в том, что я должен использовать int ** вкладка = новое int*[size], а индексы, которые не «заполнены» данными пользователя, должны быть нулевыми.
MRE:
Код: Выделить всё
#include
using namespace std;
void resize(int**& tab, int& size) {
int** new_tab = new int*[size * 2];
for (int i = 0; i < size; i++)
new_tab[i] = tab[i];
for (int i = 0; i < size; i++) {
if (tab[i] != nullptr)
delete tab[i];
}
delete[] tab;
tab = new_tab;
size *= 2;
}
void add(int value, int** tab, int& size, int& count) {
if (count == size)
resize(tab, size);
for (int j = size - 1; j >= 0; j--) {
if (tab[j])
continue;
tab[j] = new int;
*tab[j] = value;
break;
}
count++;
}
void print(int** tab, int size) {
for (int j = 0; j < size; j++) {
if (tab[j] != nullptr)
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79228426/segmentation-fault-when-trying-to-resize-a-dynamic-array-of-pointers[/url]
Мобильная версия