0

私が抱えている問題は、DLL をビルドしようとしていることです。また、文字列の代わりに char を使用して情報を保存しています。

ヘッダー ファイルで次のように定義しました。

class Test{
public:
    int qLenght;
    char firstName[];
    char surName[];
};

以下を使用してメインプログラムからコードを入力する際に​​問題があります。

int main()
{

        Test theTest;
        theTest.firstName[0] = {"Mike Smith","Jonny Vegas","Jimmy Woo"};

}

メイン プロジェクトの先頭にヘッダー コードを含めました。

char 配列に追加できません。これはばかげた質問のように思えるかもしれませんが、私は苦労しています. パラメータがありませんか?

4

1 に答える 1

1

クラスは、クラスをインスタンス化するときに割り当てるメモリの量を知る必要があります (値を割り当てるのとは異なります)。

class Test
{
public:
    char firstName[2][100];
};

int main()
{
    Test theTest;
    strcpy(theTest.firstName[0], "Mike Smith");
    strcpy(theTest.firstName[1], "Jonny Vegas");
    return 0;
}

または、割り当て時に文字列に動的にメモリを割り当てることもできますが、再度解放することを忘れないでください。

class Test{
public:
    char *firstName[2];
};

int main()
{
    Test theTest;
    theTest.firstName[0] = strdup("Mike Smith");
    theTest.firstName[1] = strdup("Jonny Vegas");

    // do stuff

    free(theTest.firstName[0]);
    free(theTest.firstName[1]);
    return 0;
}
于 2012-12-08T21:06:29.907 に答える