2017-09-02 14 views
0

Je rencontre un problème en attribuant la valeur d'un tableau de 2 d dans un int, cela me donne l'avertissement "transtyper du pointeur en entier de taille différente c". Est-il possible d'affecter la valeur d'un tableau 2D dans un int comme celui-ci:transtypage d'un pointeur vers un entier de taille différente c

int main(){ 

    int test[10][10] = {{1}}; 

    int integer = (int) test[0]; 

    return 0; 
} 

Répondre

0

vous pouvez en effet passer une valeur à partir d'un tableau 2D entier à une variable int. Vous avez fait une petite erreur, vous devriez avoir écrit comme ceci:

int integer = test[0][0]; 

Juste pour éviter les erreurs futures, vous devez affecter plusieurs variables dans les autres éléments dans votre tableau d'autre que vous recevrez NULL comme valeur qui dans certains cas arrête de programmer de la compilation.

0

test [0] représente une ligne. Vous ne pouvez pas mettre un tableau d'entiers dans une variable entière.

int * entierPointer = (int *) test [0];

serait la syntaxe correcte. Maintenant integerPointer agit comme un simple tableau.

+0

que se passe-t-il si je veux comparer le pointeur entier qui représente une partie spécifique du tableau à un autre tableau de pointeurs d'une autre ligne pour déterminer quel nombre représente la ligne la plus grande. Comment une telle comparaison entre pointeur serait-elle faite? –

+0

Puisque les tableaux 2D obtiennent la mémoire dans l'ordre. Vous pouvez comparer les pointeurs directement. La valeur du pointeur de la ligne 0 sera inférieure à la valeur du pointeur de la ligne 1 et ainsi de suite. –