En fait, en C, les tableaux à plus d'une dimension n'existent pas. On n'a que des tableaux à une dimension. Pour simuler une deuxième dimension, on fait un tableau vers des tableaux de une dimension.
Dans la déclaration, long **Tab, les deux étoiles signifient que Tab contient l'adresse d'une case mémoire qui contient une adresse qui contient un long. Si une adresse est codée sur 10 octets (10 est juste une valeur d'exemple, en fait c'est plutôt 4 ou 8), alors la déclaration dit de réserver une zone mémoire de dix octets. Mais ce n'est pas tout. Cette déclaration dit aussi au compilateur de vérifier que ce qui va être mis dans cette zone sera bien des pointeurs vers des long.
Dans la déclaration, long *Tab, la réservation en mémoire est la même qu'avant, c'est-à dire la réservation de 10 octets pour une adresse. Mais cette déclaration prévoit que l'on va mettre des long , et donc le compilateur émettra un avertissement ou une erreur quand on voudra affecter autre chose qu'un long dans une case de Tab.
Message édité par olivthill le 20-10-2010 à 14:44:37