使用C ++语言打印CHAR数组时出现问题

时间:2019-04-20 12:08:55

标签: c++ c++11 visual-c++

我尝试打印一个数组,但我不能。有谁知道为什么吗?

在Main.cpp文件中,当然有一个函数调用。

我的代码:

Game.cpp:

LR

Game.h:

#include "Game.h"

Game::Game() {
    char example[] = "PASS";
}

bool Game::PrintArray() {
    cout << example[0] << endl;
    return true;
}

1 个答案:

答案 0 :(得分:2)

您的代码有三个问题:

1)Game.h中的数组示例是长度为零的静态数组(因此您不能在其中添加字符) 解决方案:创建指向字符数组的const指针

2)在游戏的构造函数内,创建一个NEW变量示例,不要影响Game.h中的变量。h->您在类中的变量只是不更新 解决方案:example = "PASS";

3)在func Game :: PrintArray中,您仅打印第一个字符 解决方案:cout << example << endl;

Game.h:

class Game {
private:
    const char* example;
public:
    Game();
    bool PrintArray();

};

Game.cpp:

Game::Game() {
    example = "PASS";
}

bool Game::PrintArray() {
    cout << example << endl;
    return true;
}

但更正确的解决方案是使用std::string。然后,您不必担心已分配/未分配的内存:

Game.h:

class Game {
private:
    std::string example;
public:
    Game();
    bool PrintArray();

};

Game.cpp:

Game::Game() {
    example = "PASS";
}

bool Game::PrintArray() {
    cout << example << endl;
    return true;
}