

Помогите с С++
вылетает экзепшн на строке "FamilyAndOld[i][0] = i + 1;" что Необработанное исключение по адресу 0x011F4522 в ConsoleApplication16.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCDCDCDCD.
Какие ещё блин права от меня требуют я всего-то создаю динамический двумерный массив
#include <iostream>
using namespace std;
int main()
{
char container[6];
int S, FamilyId;
FILE *file;
if((file = fopen("D:\\OUTPUT.txt","rt")) != NULL)
{
fgets(container, 10000, file);
S = atoi(container);
fgets(container, 10000, file);
FamilyId = atoi(container);
fclose(file);
}
char **FamilyAndOld = new char*[FamilyId];
for (int i = 0, j = 25; i < FamilyId; i++, j--)
FamilyAndOld = new char* [j];
for (int i = 0; i < FamilyId; i++)
{
for (int j = 0; j < 25; j++)
{
FamilyAndOld[i][0] = i + 1;
}
}
#include <iostream>
using namespace std;
int main() {
char** p = nullptr;
int r, c;
cin >> r >> c;
// выделение памяти
if (p = new(nothrow) char*[r]) {
for (int i = 0; i < r; ++i) {
if (p[i] = new(nothrow) char[c]);
else {
for (int j = 0; j < i; ++j) if (p[j]) delete[] p[j];
if (p) delete[] p;
p = nullptr;
break;
}
}
}
// TODO:
// освобождение памяти
if (p) for (int i = 0; i < r; ++i) if (p[i]) delete[] p[i];
if (p) delete[] p;
p = nullptr;
return 0;
}
FamilyAndOld = new char*[FamilyId];//FamilyAndOld указывает на новый массив указателей
for (int i = 0, j = 25; i < FamilyId; i++, j--) FamilyAndOld = new char* [j];//FamilyAndOld указывает на другой новый массив указателей в каждом проходе цикла
FamilyAndOld[i][0] = i + 1;//по адресу FamilyAndOld[i], где находится неинициализированный указатель, берется указатель и по нему что-то записывается.. .
Пользуйтесь списками и векторами. А то что он ругается означет что вы обратились к несуществующему элементу (или проще говоря ваш динамический двумерный массив создается не верно) .
проще было бы сделать так std::List<std::List<char> *> *mylist;
mylist= new std::List<std::List<char> *>;
мы получили корень
mylist->append(new std::List<char>); мы получили нулвую строку
mylist->at(0)->apped('a'); первый элемент