Questions sur pointer-arithmetic

17
réponses

Avec les tableaux, pourquoi est-ce le cas que a[5] == 5[a]?

comme Joel le souligne dans podcast de débordement de pile # 34 , dans C Langage de programmation (alias: K ... l dit que c'est à cause de l'arithmétique pointer mais je ne comprends toujours pas. pourquoi a[5] == 5[a] ?
demandé sur 2008-12-19 20:01:33
2
réponses

Ptrdiff t peut-il représenter toutes les soustractions de pointeurs vers des éléments du même objet de tableau?

pour la soustraction des pointeurs i et j aux éléments du même objet de tableau la note dans [expr.ajouter#5] se ... langue anglaise. EDIT: Related: Pourquoi est la taille maximale d'un tableau est "trop grand"?
demandé sur 2018-03-20 12:27:29
4
réponses

Faut-il parler d'un cas particulier de tranchage d'objet?

disons que j'ai une classe Derived qui dérive de la classe Base alors que sizeof(Derived) > sizeof(Base) . Mainten ... correct pour une telle erreur de programmation? Doit-il être considéré comme un cas de objet de découpage ?
demandé sur 0000-00-00 00:00:00
8
réponses

Quelle est la raison d'être des limites à l'arithmétique ou à la comparaison des pointeurs?

en C/C++, addition ou soustraction sur le pointeur est défini seulement si le pointeur résultant se trouve à l'intéri ... ent effectivement définir un ordre total sur tous les pointeurs comme démontré par cette réponse , j'en doute.
demandé sur 2017-12-03 11:05:11
5
réponses

C arithmétique des indicateurs

étant donné ce code: int *p, *q; p = (int *) 1000; q = (int *) 2000; Qu'est-ce que q - p et comment?
demandé sur 2010-01-22 16:35:11
3
réponses

Élément d'accès au-delà de L'extrémité D'un tableau en C

j'ai lu le livre de K & R sur C, et j'ai trouvé que le pointeur arithmétique en C permet d'accéder à un élément au-del ... et de faire presque n'importe quoi avec la mémoire mais je ne comprends pas, quel est le but de cette particularité?
demandé sur 2009-06-20 09:27:26
1
réponses

Comment éviter la multiplication en arithmétique pointer?

si j'écris int main(int argc, char *argv[]) { int temp[50][3]; return &temp[argc] - &temp[0]; } ... fonctionnement du programme est passé de 9,2 secondes à 7,4 secondes. donc oui, c'est en effet très lente.
demandé sur 2014-02-13 15:41:00
1
réponses

Adresse forme canonique et pointeur arithmétique

sur les architectures compatibles AMD64, les adresses doivent être sous forme canonique avant d'être déréférencées. ... es? L'OS vous garantit-il de ne jamais vous attribuer de mémoire dont la plage d'adresses ne varie pas du 47ème bit?
demandé sur 2016-08-16 17:35:55