2

列挙型を処理するとき、メモリを管理する必要がありますか?これは、列挙型を宣言した場所です。これは別の.hファイルにありますこれは私が変数を宣言しようとする場所です
その後私はそのようなことをしなければなりませんか

// This is where I declared my enum type. It is in another .h file

    typedef enum CardTypes
    {
        HEART = 1,
        DIAMOND =2,
        CLUB =3,
        SPADE = 4

    } CardType;

    // This is where I attempt to declare variable  

    CardType cardType=SPADE;

    //or

    CardType cardType=malloc(size(CardType));

    // After that Do I have o do something like that

    [cardType release]

    //or

     free(&card)

     Any help will be appreciated , thanks
4

2 に答える 2

2

これは単なる基本的なCタイプでありint、この点ではのように処理されます。

これは自動です:

CardType cardType=SPADE;

しかし、あなたが使用しなければならないことがわかったとき、あなたmallocはそれをする必要があるでしょうfree

通常(パラメータ、ivar、ローカル変数など)、列挙型を値で宣言しますが、(のように) +intを使用する必要がある場合があります。mallocfree

于 2012-05-27T09:20:34.967 に答える
1

CardType type = SPADE-スタックにメモリを割り当てます(メモリ管理は必要ありません)

CardType * type = malloc(sizeof(CardType))-ヒープにメモリを割り当てます(ポインタに言及*)。明示的な割り当てのため、free(type)を使用してメモリを解放する必要があります。

于 2012-05-27T09:35:56.757 に答える