2012-05-27 1 views
2

Должен ли я заботиться о памяти, когда занимаюсь перечислением? Здесь я объявлял свой тип перечисления. Он находится в другом файле .h Здесь я пытаюсь объявить переменную
После этого У меня есть O сделать что-то подобноеObjective C typedef Управление памятью enum

// 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 = SPADE - Выделяет память на стеке (без управления памятью требуется)

CardType * Тип = таНос (SizeOf (CardType)) - выделяет память на куче (упомянуть указатель *), из-за явного alloction вы несете ответственность за освобождение памяти, используя свободный (тип)

 Смежные вопросы

  • Нет связанных вопросов^_^