数组分配问题

Array allocation problem

本文关键字:问题 分配 数组      更新时间:2023-10-16

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

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

我试着:

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

以及使用(unsigned int)有人可以帮助吗?

您可以考虑:

value = new int[m*n];

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

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

这个怎么样?

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