(я не разместить свой код, как это для проекта, однако я пытался получить помощь по этому вопросу, но не имели никакой удачи)Динамическая инициализация выделения памяти в C++ класс
Привет там, Я пытаясь инициализировать размер массива указателей (char*
), который является частной переменной-членом моего класса class A
Я использую конструктор для установки размера путем установки целочисленной переменной (также переменной-члена), которая будет затем используется для создания моего массива указателей.
Я делал это до сих пор:
// Constructor - 'int value' is set to a value
private:
int value;
char ** myArray = new char*[value];
Поэтому в основном я хочу, массив указателей, в котором каждый элемент может указывать на строку. Я передаю строковые переменные в myArray
с помощью (char*
) stringVar.c_str();
Хотя все это работает, я получаю некоторые довольно странные ошибки при попытке сохранить переменные и даже получили эту ошибку:
free(): invalid next size (fast)
Пришло странно, потому что даже когда myArray
имеет размер 4, когда я пытаюсь получить доступ, скажем, к третьему элементу, я получаю ту же ошибку, что и выше.
Я очень новичок в C++ и очень хочу решить эти проблемы. Мне пришлось прибегнуть к этому форуму для помощи, и я с нетерпением жду некоторых идей от вас, ребята :)
с использованием 'зОго :: вектора' кажется лучше , –
Jarod42
Возможно, вы пытаетесь освободить указатель, который не был выделен malloc (или удалить объект, который не был создан новым), или вы можете пытаться освободить или удалить такой объект более одного раза. –
Я подозреваю, что компилятор не любит бит «new char * []». Почему бы не попробовать что-то вроде: "char * myArray = new char [value];" –