4 Réponses :
Vous obtenez comportement indéfini em>. À la fin de la première boucle It peut être que sur votre implémentation, le tableau p code> points sur "un après la fin" de B code>. Sans le réinitialiser, vous le désirez alors et continuez à l'incrémenter, ce qui cause des comportement indéfini em>. P>
A code> est stocké immédiatement après le tableau B code> et que p code> a commencé à pointer dans le tableau a code>. Ce serait un potentiel "non défini" Bahaviour. P>
Donc, fondamentalement, cela peut être n'importe quoi, juste dans ce cas, il semble indiquer la prochaine adresse de la mémoire dans ce cas qu'il pointe sur l'élément de départ de la matrice A? Corrigez-moi si je me trompe. Merci
exactement. ça peut être n'importe quoi. Le meilleur cas est qu'il se bloque donc vous savez que quelque chose ne va pas tôt.
@ user2135885: Pour moi, cela ressemble à une explication raisonnable, bien qu'il soit possible qu'il y ait une raison plus obscure de la coïncidence que vous voyez.
Vous ne devriez pas faire une boucle séparée pour l'impression et l'incrémentation des valeurs de la matrice. Faites à la fois la même boucle et procédez comme suit pour obtenir votre sortie :) #include #include
après le premier pour {}, P pointe à B [5], mais la taille de B est 5, la valeur B [5] est donc inconnue, la valeur Printf * p est la même valeur que A [I], le La raison peut être en mémoire B [5] est un [0]. P>
Je pense que ce que vous devez faire est d'ajouter un p = p - 5; code>
Mieux: p = b code> à nouveau, car le 5 code> pourrait changer.
Vous avez mal classé vos colonnes: il devrait être
* p b a code>, pasa b * p code>.Oui j'ai fait mon mal. Fixé
Pour des raisons de résistance au changement, mieux do
int b [taille de taille (a) / sizeof (A [0])] = {... code> et remplacez les valeurs5 code> au même terme. De cette façon, vous pouvez modifier le tableauA code> et tout ira bien.