2012-05-27 45 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对堆存储器(提指针*),你有责任释放内存使用免费(类型)