Я пытаюсь динамически выделять массив в куче, используя структуру, которая имеет указатель на массив и строку. Вот мой код.Как динамически выделять массив 2d для структуры
struct StudentRecords
{
string names;
int* examsptr;
};
void main()
{
const int NG = 5;
string names[] = { "Amy Adams", "Bob Barr", "Carla Carr",
"Dan Dobbs", "Elena Evans"
};
int exams[][NG] =
{
{ 98,87,93,88 },
{ 78,86,82,91 },
{ 66,71,85,94 },
{ 72,63,77,69 },
{ 91,83,76,60 }
};
StudentRecords *data = nullptr;
(*data).examsptr = new int[][NG];
int *data = new int[NG*NG];
Вы должны исправить отступы, что, вероятно, произошло при копировании + вставив в StackOverflow, чтобы легче читать код. Также обратите внимание, что ['void main' ** не является ** действительным C++] (http://www.stroustrup.com/bs_faq2.html#void-main) – Tas
Вы используете' * data', когда это 'nullptr '. Это приведет к сбою до того, как вы достигнете структуры. О, и у вас есть две переменные, называемые 'data'. Не собираюсь работать. –
Вы приговорены к ручному управлению памятью? Так как это домашнее задание, вы можете быть. Но если нет, просто используйте [std :: vector] (http://en.cppreference.com/w/cpp/container/vector) 'vector's' int' (или просто 'std :: vector 'и не беспокоить. –
user3159253