将1 D数组传递给采用2 D数组的函数

Sum*_*ain -1 c++ arrays

我有一个函数,需要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)

怎么做?

Arm*_*yan 5

这完全取决于功能及其功能.为什么需要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)