我不打算改变我的动态数组的大小。我想创建一个静态数组(包含短裤)的动态数组的原因是,我可以在一个函数中返回该数组(而不是在该函数中定义该数组的大小之前)。Dynamic Array of Static Arrays的问题
我的第一个问题是,我该如何返回这样一个数组?函数不让你返回没有类型的指针&我无法找出如何定义类型为array
的指针。
这使我想到我的第二个问题,那就是如何正确定义静态数组的动态数组?我在网上搜索了这个,但没有一个答案太有帮助。
这样做的一种方法是声明:short (*array)[size]
但这样做的问题是我不知道如何在这种情况下初始化数组,而size
必须是文字。
我可以这样做:
typedef short column[size];
column * row = NULL;
row = malloc(rowMax * sizeof(column));
row[0][0] = 10;
但同样,size
必须是文字;即使size
是文字,我收到一个错误,指出类型“void *”的值不能分配给“column *”类型的实体。
如果您有任何人有不使用矢量的解决方案,将不胜感激;因为矢量类比数组类大。
使用'std :: vector' –
_“,因为矢量类比数组类大。”_你的示例中没有_array class_。 –
如果您使用的是C++ 11或更高版本,则可以对静态数组使用['std :: array'](http://en.cppreference.com/w/cpp/container/array)。 –