char *mas = new char [func1()*func2()];
/*...*/
delete mas;
Динамическое выделение памяти под массив
char mas[func1()][func2()];
Ноя не понимаю, как правильно организовать распределение памяти. Помагите, чем могите:)
Цитата:
Originally posted by solovey
мне надо создать в программе массив, размеры которого определяются динамически:
char mas[func1()][func2()];
Ноя не понимаю, как правильно организовать распределение памяти. Помагите, чем могите:)
мне надо создать в программе массив, размеры которого определяются динамически:
char mas[func1()][func2()];
Ноя не понимаю, как правильно организовать распределение памяти. Помагите, чем могите:)
Я предложил бы создать одномерный массив типа
Код:
#include <iostream>
#include <vector>
int main()
{
vector<int> v;
v.push_back(10);
и т.д.
}
Цитата:
Originally posted by solovey
мне надо создать в программе массив, размеры которого определяются динамически:
char mas[func1()][func2()];
Ноя не понимаю, как правильно организовать распределение памяти. Помагите, чем могите:)
мне надо создать в программе массив, размеры которого определяются динамически:
char mas[func1()][func2()];
Ноя не понимаю, как правильно организовать распределение памяти. Помагите, чем могите:)
Действительно, чтоб обращаться к элементам массива в более удобном виде (имею ввиду такой вид mas[j], надо выделить память под двумерный массив.
Делается это так:
char ** ch = new char*[func1()];
for(int i=0; i<func1(); i++)
{
ch = new char[func2()];
}
Но после использования массива незабудь освободить память:
for(i=0; i<func1(); i++)
{
delete ch;
}
delete []ch;
Цитата:
Originally posted by kima
Действительно, чтоб обращаться к элементам массива в более удобном виде (имею ввиду такой вид mas[j], надо выделить память под двумерный массив.
Делается это так:
char ** ch = new char*[func1()];
for(int i=0; i<func1(); i++)
{
ch = new char[func2()];
}
Но после использования массива незабудь освободить память:
for(i=0; i<func1(); i++)
{
delete ch;
}
delete []ch;
Действительно, чтоб обращаться к элементам массива в более удобном виде (имею ввиду такой вид mas[j], надо выделить память под двумерный массив.
Делается это так:
char ** ch = new char*[func1()];
for(int i=0; i<func1(); i++)
{
ch = new char[func2()];
}
Но после использования массива незабудь освободить память:
for(i=0; i<func1(); i++)
{
delete ch;
}
delete []ch;
спасибо, то что надо :)
PS std::vector испольлзовать нежелательно