数组分配问题

时间:2011-08-26 11:27:25

标签: c++

这可能是一个非常简单的问题,但出于某种原因,我不明白我在这里做错了什么。

无论如何,我得到了一个接受function(size_type m, size_type n)的函数,我必须构建一个数组,该数组由名为int *value的类中的私有变量指向。我正在尝试创建一个mxn大小的整数数组,但是我很难改变m和n的类型。

我试过了:

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

以及使用(unsigned int)可以有人请求帮助。

编辑:size_type未在规范中声明为任何类型

2 个答案:

答案 0 :(得分:6)

您可以考虑:

value = new int[m*n];

因为您需要创建动态数组。您需要在正确的时间记住delete []这个。

您可能会发现使用std::vector更容易,因为内存管理是为您处理的。

答案 1 :(得分:0)

这个怎么样?

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吗?