私はサンプル コードを書きます。リストを push_back すると、常にコアダンプが発生します。これが私のコードです。
#include <iostream>
#include <list>
#include <string.h>
using namespace std;
struct FDTinstance
{
int type;
unsigned int expirestime;
unsigned int fileTOI;
string filename;
unsigned int contentlength;
unsigned long long T3;
unsigned long long T1;
unsigned long long T4;
unsigned long long sessionstarttime;
};
struct PacketInfo
{
unsigned int port;
unsigned long long arrivetime;
unsigned int syncType;
unsigned short timeStamp;
unsigned short packNum;
unsigned int packCount;
unsigned int TSI;
unsigned int TOI;
FDTinstance fDTinstance;
};
int main(int argc, char* argv[])
{
struct PacketInfo packet;
packet.fDTinstance.filename = "http://123.com";
packet.syncType=1;
packet.fDTinstance.expirestime = 100;
packet.fDTinstance.fileTOI = 0;
struct PacketInfo pack;
memcpy(&pack, &packet, sizeof(packet));
mVodList.push_back(pack);//cause core
return 0;
}
を使用すればconst char* filename
、プログラムは問題ありません。しかし、文字列型を使用すると、プログラムは でコアになりpush_back()
ます。理由はわかりません。ありがとうございます