由于多个实例化,我希望保留一个静态位置来写入。我希望能够从每个实例添加到列表中。但只保留了第一个 不知道该怎么办?
适用于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());
}
}
答案 0 :(得分:0)
您应该在标头中声明msgList
静态。不要忘记在.cpp文件中添加QStringList CLASS_NAME::msgList;
。
在您的fncInit
中,您将空QStringList
分配给msgList
,但无论如何都是正确的方式。
答案 1 :(得分:0)
在头文件中,您需要以下代码:
static QStringList msgList;
这将使该静态变量可用于包括该头文件在内的所有函数。
当您在函数中声明msgList
静态时,您正在创建它的本地实例。