Ваши две переменные являются указателями одного типа, поэтому просто присвойте одну другой другой:
customclass.somearray = otherarray;
То, как вы это написали, не нужно. Использование оператора разыменования *
по существу дает вам «содержимое» указателя. Адрес оператора &
соответственно дает вам адрес, к которому вы его применяете. Ваш указатель otherarray
содержит адрес. Если вы разыменуете этот адрес, а затем берете его, вы в конечном итоге возвращаетесь туда, откуда начали.
Имейте в виду, что левая сторона этого присваивания является доступом к свойству (при условии, что customclass
также является объектом, а не просто struct
). Это означает, что компилятор изменит ваше выражение на:
[customclass setSomearray:&*otherarray];
// And my version will be changed into:
[customclass setSomearray:otherarray];
То есть он становится вызовом метода, а не простым присваиванием. Однако это не влияет на синтаксис, который вы должны использовать.