J'ai le code ci-dessous.
____________ a -> |a|b|c|d|e|\0| ¨¨¨¨¨¨¨¨¨¨¨¨ ____________ b -> |f|g|h|i|j|\0| ¨¨¨¨¨¨¨¨¨¨¨¨ ____________ c -> |k|l|m|n|o|\0| ¨¨¨¨¨¨¨¨¨¨¨¨ ___________ d -> | | | | | | | ¨¨¨¨¨¨¨¨¨¨¨
5 Réponses :
C'est une réponse légèrement cryptique, mais je suppose que la plainte est que le tableau Cela pourrait être ce qui est nécessaire (sans la flèche de pointeur): p> Le nom d'un tableau peut être utilisé comme un pointeur, mais il a toujours un subtilement signification différente. p> p> a code> ne em> point em> sur ces données; Il contient em> les données.
Oui c'est ce que je pensais. Cependant, ce n'est pas un tableau essentiellement un pointeur au premier élément?
Le nom d'un tableau pointe vers le tout premier élément de ce tableau. C'est un pointeur dans ce sens.
On dirait qu'ils voulaient une image comme Ceci .
@Pithikos: Non, ce n'est pas. Le tableau A code> est juste la collection de 6
char code> s. Dans certaines circonstances
a code> évaluera à un pointeur sur le premier caractère, mais ce n'est pas la même chose que dire que
a code> est i> un pointeur (qui ce n'est pas).
@CAF "Collection of Char" est juste une notion abstraite. Je conviens qu'un tableau n'est pas la structure de données du pointeur. Cependant, il a une adresse en tant que contenu comme un pointeur. De cette façon, vous pouvez dire que c'est un pointeur. C'est juste que nous ne voulons pas dire le pointeur de structure de données dans ce cas.
@Pithikos: une collection de 6 caractères n'est plus abstrait qu'un seul char. Le contenu de la matrice est les 6 caractères qui le font. Ni plus ni moins.
L'explication réelle est ici Stackoverflow.com/questions / 1335786 / ... un point toujours sur les données. Les données sont simplement allouées sur la pile et copiées.
@Pithikos Pourquoi posez-vous la question ici si vous semblez déjà connaître toutes les réponses?
Je les dessinerais comme ceci: remarque comment le A code> est inférieur à l'ensemble de la matrice, pas à côté d'une flèche. Il s'agit de souligner que
A code> est un ensemble complet contenant la chaîne elle-même, pas seulement un pointeur. Cela montre que vous réalisez la différence entre un tableau em> et un pointeur em>. P> p>
@Andrey: Non, ce n'est pas. Il y a une différence distincte entre un tableau et un pointeur. Bien que les identifiants de réseau se soient décomposés à un pointeur dans certains contextes, cela ne les fait pas des pointeurs. Essayez Tailleof (a) CODE> et
Tailleof (B) CODE> et voir la différence pour vous-même.
Oui, tu as raison à ce stade. Mais en fait, cela n'a pas vraiment d'importance ici, je pense.
Vous avez d code> pointant vers 7 octets de déchets; ça ne devrait être que 6. :)
Le contenu de la mémoire pointant par d code> n'est pas déterminé réellement. Il doit contenir des ordures qui provient de
masloc () code> sur
C code> p>
J'essaierais même de distinguer l'endroit où les données sont pointées sur des vies.
Je pense que vous avez à peu près raison: sorties: strong> p> Quant à votre réponse non acceptée, il y a probablement une autre forme de représentation que votre professeur s'attendait à ce que votre professeur s'attendait à Vous devez faire pour le tableau Strlen () code> recherche le caractère code> NULL code> pour pouvoir itération sur un tableau de cordes et de caractères de comptage, l'OCOUNCE de
null code> lui-même n'est pas ajouté à la somme finale, c'est pourquoi il rapporte 5 caractères au lieu de 6. p>
A code>, vous êtes peut-être intéressé à parler à vos collègues, mais je ne pense pas être juste d'affirmer que vous avez donné une mauvaise réponse. p> p >
Il n'est pas clair de votre question Quelle a été votre réponse et ce qui n'allait pas avec ça. S'il vous plaît essayez de le reformuler pour le rendre plus compréhensible.
@karlphillip, C n'était pas rempli, il a été réaffecté.
Non, le contenu de
C code> est pas b> copié sur
d code>.
C'est une sorte de question truc et je dirais que vous l'avez passé. En pratique, lorsqu'un programme est en cours d'exécution, il n'y a pas de différence entre, par exemple,
a code> et
b code>. Peut-être que vous auriez pu dire que "Abcde" était sur la pile, mais c'est à peu près tout.
@David parlant strictement que nous copions le contenu. C'est juste que les pointeurs ont une adresse de contenu.
Lisez la section 6 de la Comp.lang.ca FAQ ; Une fois que vous êtes là, lisez aussi les autres sections :)
Venez y penser, les données pointées par
d code> seront aléatoires, car il pointe de la mémoire ininitialisée.
@Pithikos no,
d = c code> attribue le pointeur, le contenu n'est pas copié.