小编Dav*_*car的帖子

指向char数组C++的指针

我有问题将下一个代码从c转换为c ++:
我有一个函数,它将一个移动序列数组(字符序列从a到i)作为arg.

码:

void mkmove(char** move) {
    int i = 0;
    char* p = NULL;
    int moves[9][9];

    for(int i = 0; i < 9; i++) {
        for(p = move[i]; *p; p++) {
            moves[i][*p - 'a'] = 3;
        }
    }
}

int main() {
    char* movestr[] = {"abde", "abc", "bcef", "adg", "bdefh", "cfi", "degh", "ghi", "efhi"};
    mkmove(movestr);

    return(0);
}
Run Code Online (Sandbox Code Playgroud)

gcc编译该代码很好,但如果我尝试用g ++编译它,它会给我下一个警告:
main.cpp:17:39:警告:不推荐将字符串常量转换为'char*'[-Wwrite-strings]

我相信这个警告来自C中的字符串定义为char [],而c ++使用std :: string.
所以我尝试将代码替换为使用C++字符串,如下所示:

void mkmove(std::string* move) {
Run Code Online (Sandbox Code Playgroud)

在mkmove函数defenition中,和:

std::string* movestr = {'abde', "abc", "bcef", "adg", …
Run Code Online (Sandbox Code Playgroud)

c c++ arrays pointers

3
推荐指数
2
解决办法
6755
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

pointers ×1