Я хотел бы напечатать (журнал), что следующие переменные хранятся в стеке и куче. Я хочу знать, где хранятся эти нижеперечисленные переменные в этой программе. Я чувствую это, кроме первых двух переменных, другие хранят в куче.iOS/Obj C: Переменные распределения и освобождение
-(void) MyFunction
{
flat value = 9.5; // Stored in Stack?
int count; // Stored in Stack?
NSString *myString = @"Incoming message"; // Stored in Heap
NSArray *myArr = [[NSArray alloc] init]; // Stored in Heap
.......
.......
}
В этом случае, как я могу их освободить, используя 'release'?
- Как я могу печатать/записывать, где эти переменные хранятся в стеке/куче?
- Является ли мое предположение о сохранении местоположения (кучи/стека), упомянутого в вышеуказанной программе, правильным или неправильным?
- Если выделенные объекты, хранящиеся в памяти кучи, их ссылки также будут находиться в куче (или), ссылка будет находиться в стеке?
'NSString * myString = @" Входящее сообщение "; // Хранится в «Куче» - откуда у вас эта идея? –
Это не страшная идея; в этом случае это просто неверно. В gcc, без '-fconstant-cfstrings', он фактически может быть сохранен в куче (мне нужно будет дважды проверить). –
@RobNapier Я не сказал, что это ужасная идея - что с этим не так, так это то, что она основана на предположении, что OP не проверяет, является ли это истиной или ложью. –