2012-05-27 79 views
2

當我處理枚舉時,是否需要照顧內存? 這是我宣佈我的枚舉類型。這是另一個.h文件中 這是我嘗試聲明變量
之後,我必須Ø做這樣的事情Objective C typedef枚舉內存管理

// 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 

回答

2

這僅僅是一個基本的C型 - 它只是處理像int在這方面。

這是自動的:

CardType cardType=SPADE; 

但是,當你發現你必須使用malloc,那麼你就需要free它。

通常(例如參數,實例變量,局部變量),則可以通過將值聲明枚舉,但是(如int)可能偶爾需要使用malloc + free

1

CardType類型=鏟 - 堆棧分配存儲器(不需要存儲器管理)

CardType *類型= malloc的(的sizeof(CardType)) - 分配,因爲明確alloction對堆存儲器(提指針*),你有責任釋放內存使用免費(類型)