0

複数のインスタンス化があるため、静的な書き込み場所を保持したい。インスタンス化ごとにリストに追加できるようにしたい。ただし、最初のものだけが保持されます。
何をすべきかわからない?

char 型のポインターに対して機能します。しかし、QStringList をポインターに変換しようとすると、エラーが発生し続けました: Segmentation Fault.

*.h


QStringList msgList;

*.cpp


fncInit(){
    static QStringList MessageList;
    msgList = MessageList;//keep the location constant for all new instantiations
}

fncBuild(QString strMessage){
    MessageList.append(strMessage); //if I use a pointer QStringList through out, I get Segmentation Fault.
}

fncPrintf(){
    for(int i; i < msgList.count(); i++){
        printf("%d)    %s", i, msgList.at(i).toStdString().c_str());
    } 
}
4

2 に答える 2

0

msgListヘッダーで staticを宣言する必要があります。QStringList CLASS_NAME::msgList;.cpp ファイルに追加することを忘れないでください。

そして、あなたは空をにfncInit割り当てますが、とにかく正しい方法は上記です。QStringListmsgList

于 2013-06-27T19:04:11.567 に答える