Это, наверное, очень простой вопрос, но по какой-то причине я не понимаю, что я здесь делаю не так.

В любом случае, у меня есть функция, которая принимает function(size_type m, size_type n), и мне нужно создать массив, на который указывает частная переменная в классе с именем int *value. Я пытаюсь создать целочисленный массив размером mxn, но мне трудно изменить тип m и n.

Я старался:

*value = int[(int)m*(int)n];

А также с помощью (unsigned int) может кто-нибудь помочь.

РЕДАКТИРОВАТЬ: size_type не объявлен как любой тип в спецификациях

c++
0
wpp 26 Авг 2011 в 15:27

2 ответа

Лучший ответ

Вы можете рассмотреть:

value = new int[m*n];

Потому что вам нужно создать динамический массив. Вам нужно будет не забыть delete [] это делать в правильное время.

Вам, вероятно, будет проще работать с std::vector, потому что управление памятью выполняется за вас.

6
Oliver Charlesworth 26 Авг 2011 в 11:30

Как насчет этого?

typedef int size_type; //could also be this or that other type...

void myFunction(size_type m, size_type n)
{
   int array[(int) m * (int) n ];
   int *value = array;
};

int main()
{
   myFunction(2, 2);
   return 0;
}

Или вам нужен value вне функции? Вы хотите, чтобы функция возвращала value?

0
AudioDroid 26 Авг 2011 в 11:36