1. ホーム
  2. c++

[解決済み】C++の配列の割り当てエラー:無効な配列の割り当て

2022-02-09 02:38:56

質問

私はC++プログラマーではないので、配列について手助けが必要です。 私は文字列の配列をある構造体に代入する必要があります。

struct myStructure {
  char message[4096];
};

string myStr = "hello"; // I need to create {'h', 'e', 'l', 'l', 'o'}

char hello[4096];
hello[4096] = 0;
memcpy(hello, myStr.c_str(), myStr.size());

myStructure mStr;
mStr.message = hello;

私は error: invalid array assignment

なぜうまくいかないかというと、もし mStr.messagehello は同じデータ型ですか?

どのように解決するのですか?

配列は変更可能なL値ではないので、代入はできません。strcpyを使ってください。

#include <string>

struct myStructure
{
    char message[4096];
};

int main()
{
    std::string myStr = "hello"; // I need to create {'h', 'e', 'l', 'l', 'o'}
    myStructure mStr;
    strcpy(mStr.message, myStr.c_str());
    return 0;
}

また、Kedarがすでに指摘しているように、配列の末尾を書き換えていますね。