我有一个函数,需要2 D字符数组作为参数
class listview{
int numColumn;
void func(char** data)
{
}
};
Run Code Online (Sandbox Code Playgroud)
func不占用维度,因为它被固定为其所属对象中的数据成员.它的工作是在列表视图中插入由多个列组成的行.
我想将单个1 D字符数组传递给函数,因为此列表视图只有1列
listview obj;
obj.func(String("Test").GetStr()); //GetStr() returns a char array
Run Code Online (Sandbox Code Playgroud)
怎么做?
这完全取决于功能及其功能.为什么需要char**?也许是因为它需要输出或输入/输出参数?或者它可能将参数视为2D字符映射(这不太可能,因为它不占用维度).它如何解释其参数?它是否将指针传递给索引?所有这些问题都需要回答.
在最简单的输入/输出参数的情况下,我建议这样:
char* myArray = ...;
f(&myArray); //pass the address
Run Code Online (Sandbox Code Playgroud)
如果它只是一个输出参数,那么我认为参数不需要初始化;
char* myArray;
//possibly allocate memory, depends on what f does
f(&myArray);
Run Code Online (Sandbox Code Playgroud)