Как распечатать адрес памяти переменной?

Я хотел бы напечатать то, что стоит за myVariable. Я попробовал NSLog (& amin; myIntVar); но это не сработает.

Ответы

Ответ 1

Аргумент NSLog должен быть NSString, поэтому вы хотите

NSLog(@"%p", &myIntVar);

Ответ 2

Try:

NSLog(@"%p", &myIntVar);

или

NSLog(@"%lx", (long)&myIntVar);

В первой версии используется формат печати, специфичный для указателя, который предполагает, что переданный параметр является указателем, но внутренне рассматривает его как длинный.

Вторая версия принимает адрес, а затем переводит его в длинное целое. Это необходимо для переносимости на 64-битных платформах, потому что без квалификатора формата "l" предполагается, что поставляемое значение представляет собой целое число, обычно только 32-битное.

Ответ 3

NSLog (@ "%", х & myIntVar); % x для long int или вы можете печатать как Nslog (@ "% p", & amin; myIntVar); % p для указателя