-4
    typedef struct
{
    int day;
    int month;
    int year;
} Date;

 typedef struct
{
    int a;
    int s;
} MetaData;

struct A
{
    char arrA[10];
    char arrB[10];
    Date    date;
    A(char * arrA, char *arrB, const Date& date)
    {
        strcpy(this->arrA, arrA);
        strcpy(this->arrB, arrB);
        this->date = date;
    }
    A(const A& a)
    {    
        strcpy(this->arrA, a.arrA);
        strcpy(this->arrB, a.arrB);
        this->date = a.date;     
    }
};
bool operator < (const A & lhs, const A & rhs)
{
    if(strcmp(lhs.arrA, rhs.arrA) == 0)
    {
        if(strcmp(lhs.arrB, lhs.arrB) == 0)
            return false;
        else return strcmp(lhs.arrB, lhs.arrB);
    }
    else
        return strcmp(lhs.arrA, rhs.arrB);
}
 typedef map<A, MetaData> TickerMap;
int main()
{

TickerMap tickerMap;
char x[10], y[10];
Date date;
A a(x, y, date);
MetaData m;
    //tickerMap.insert(make_pair(a, m));
    cout<<"The element is sucessfully inserted"<<endl;
    return 0; 
}

いくつかのコンストラクターを使用して構造体を作成するたびに、オブジェクトをマップに挿入すると実行時エラーが発生します。誰か正確な問題を教えてください。とても参考になります。通常の構造体 (C スタイル) がある場合、挿入時に問題はありません。

エラー:実行時チェックの失敗 #2 - 変数「date」の周りのスタックが壊れていました。(ビジュアルスタジオ)

4

1 に答える 1