【发布时间】:2016-12-31 16:38:55
【问题描述】:
我想要求用户输入一个整数来创建一个像这样的二维数组:
void* myArray_1[2][userInput];
编译器不允许这样做,因为userInput 不是常量。
然后我尝试了这个:
void** myArray_2 = new void*[rowCount];
for(int i = 0; i < rowCount; ++i)
myArray_2[i] = new void[colCount];
导致以下错误:
错误:不允许使用 void 数组。
如何创建一个 void 数组,其大小将由用户从命令行输入指定?
编辑:
我的函数原型是:errorType EventGet ( EVENT_HANDLE hEvent, void * pBuffer);
我用过这个:
void* myArray_3[2][10];
...
myArray_3[0][count++] = myOtherArray[0]; //myOtherArray[0] contains a handle and myOtherArray is an 1D array with size of 2.
EventGet ( myEventHandle, myArray_3[0][i]);
我得到了正确的结果。现在我唯一想要的是允许用户指定第二维大小而不是 10。
【问题讨论】:
-
您希望在 void 数组中放入什么?错误消息很清楚,这种事情是不允许的。动态大小甚至无关紧要。
-
std::vector<std::vector<void*>> myVector(2, std::vector<void*>(userInput)); -
也许您想要一个
void*的二维数组:void*** myArray ...? -
@Code-Apprentice 我想将它传递给一个接受 void 二维数组的函数。是的,我想要一个
void*的二维数组。 -
@GmtK:你是一个困惑的人。没有函数可以接受 void 的 2D 数组。 (至少,不是在 C++ 中)。向我们展示函数的实际签名。
标签: c++ arrays visual-studio-2013 command-line