Je souhaite passer un tableau de long long à un objectif c fonction. Je voudrais que le tableau soit passé comme un pointeur, si possible, afin que la copie ne soit pas faite. J'ai écrit ce code:Pointeur vers un tableau dans l'appel de fonction Objective-C
+ (int) getIndexOfLongLongValue: (long long) value inArray: (long long []) array size: (int) count
{
for (int i =0; i < count; i++)
{
if (array[i] == value)
return i + 1;
}
return 0;
}
auquel je passe
long long varname[count];
comme second argument. Je me demande si je peux passer ce tableau comme un pointeur ou si cette méthode est bien. Je n'ai pas besoin de pointeurs sur les longues pages mais de pointeurs sur le tableau.
Merci, mais je ne comprends toujours pas complètement. Disons que j'ai un tableau de 1000 objets (à titre d'exemple) et je le passe dans cette fonction. Est-ce que la mémoire utilisée augmente seulement de la taille d'un pointeur - 4-8 octets? – user1122069
(long long *) array est le même que (long long []) array? – user1122069
Le tableau vit sur le tas (généralement). Lorsque vous appelez la fonction, tout ce que vous passez est un pointeur --- l'emplacement du tableau. (Il est en fait assez difficile de passer un tableau par valeur en C/C++/Objective C, vous ne le ferez pas par accident.) Les deux 'long long *' et 'long long []', utilisés comme types de paramètres, représentent pointeurs. –