Вам необходимо переключить все зависимости на swift 3
. В вашем случае Alamofire нужно переключить на Swift 3
ветку
Да, вы можете инициализировать указатели на значение при объявлении, однако вы не можете этого сделать:
int *p = &(1000);
& - это адрес оператора , и вы не можете применить что до константы (хотя, если бы вы могли, это было бы интересно). Попробуйте использовать другую переменную:
int foo = 1000;
int *p = &foo;
или приведение типов:
int *p = (int *)(1000); // or reinterpret_cast<>/static_cast<>/etc
В вопросе мне неясны две вещи. Вы хотите установить указатель на определенное значение (например, адрес) или хотите, чтобы указатель указывал на определенную переменную?
В последнем случае вы можете просто использовать оператор адресации. Затем значение указателя устанавливается на адрес из some_int_variable
.
int *p = &some_int_variable;
*p = 10; // same as some_int_variable = 10;
Примечание : Далее следует неправильное изменение значения указателя вручную . Если вы не знаете, хотите ли вы это сделать, вы не хотите этого делать.
В первом случае (т. Е. Установка на какой-то конкретный, заданный адрес) вы не можете просто сделать
int *p = 1000;
, поскольку компилятор не принимает int и не интерпретирует его как адрес. Вам нужно будет явно указать компилятору, что он должен это сделать:
int *p = reinterpret_cast<int*>(1000);
Теперь, указатель будет ссылаться на некоторое целое число (надеюсь) по адресу 1000. Обратите внимание, что результат определяется реализацией. Но, тем не менее, это семантика, и именно так вы сообщаете об этом компилятору.
Обновление : комитет исправил странное поведение reinterpret_cast
, которое было предложено в примечании и для которого я ранее предлагал обходной путь. См. Здесь .
Насчет:
// Creates a pointer p to an integer initialized with value 1000.
int * p = new int(1000);
Проверено, работает. ; -)
Гм. Я не думаю, что вы можете взять неконстантный адрес такой константы.
но это работает:
int x = 3;
int *px = &x;
cout << *px; // prints 3
или это:
const int x = 3;
const int *px = &x;
const int *pfoo = reinterpret_cast<const int*>(47);