-5

将函数中未预定义的数组作为操作数传递的语法是什么?

例如,我有这个功能:

void kilos(int percentage[2], char liquid[2][4]);

因此,如果我制作两个不同的数组并将它们作为操作数传递,一切都会正常工作。如果我不想在调用函数之前创建数组,这将如何工作?是分析操作数而不使用数组的唯一解决方案吗?

我想调用该函数,但我想在调用该函数时创建数组,例如:

kilos(int percent[2]={40,60}, char liq[2][4]={'wate','milk'})
4

3 回答 3

1

在 C++ 中,如果你有一个支持 C++11 的编译器并且你使用std::vector而不是原始数组,你可以使用初始化列表

 void kilos(const std::vector<int> percentage,
            const std::vector<std::string> liquid);

// ...

kilos({40, 60}, {"water", "milk"});
于 2013-03-20T13:15:21.540 回答
0

将指针传递给函数相当于传递数组。指针可以指向静态分配的缓冲区或动态内存(例如new []malloc)。

于 2013-03-20T12:48:17.767 回答
0

您需要像这样调用函数:

kilos((int[2]){40,60}, (char[2][4]){"wate", "milk"});

注意字符串文字周围的双引号。而且您可能需要第二个数组来char[2][5]允许空终止符。

于 2013-03-20T13:22:16.470 回答