0

このコードは、関数内の静的リストに新しいオブジェクトを追加します。リストは参照によって関数に渡されます。

リスト内の新しいオブジェクトの有効期間は?

コードサンプル:

#include <list>
#include <string>
#include <iostream>

using namespace std;

struct MyStruct
{
    int x;
    string str;
};

void addStructToList(list<MyStruct> &myStructlist, int _x, string _str)
{
    MyStruct newStruct;
    newStruct.x = _x;
    newStruct.str = _str;
    myStructlist.push_back(newStruct);
}

void main()
{
    list<MyStruct> myStructlist;
    addStructToList(myStructlist, 111, "aaa");
    addStructToList(myStructlist, 222, "bbb");
    addStructToList(myStructlist, 333, "ccc");

    for (auto it = myStructlist.begin(); it != myStructlist.end(); it++)
    {
        cout << it->x << " " << it->str << endl;
    }

    system("pause");
}

出力:

111 aaa
222 bbb
333 ccc
Press any key to continue . . .

質問:

このコードはメモリ使用量に関して安全ですか?

「newStruct」の寿命とは何ですか? addStructToList() または Main() ?

4

1 に答える 1