2010-06-30 2 views

Répondre

1

buf.data() semble renvoyer un pointeur vers la mémoire tampon de réseau interne en question. À partir de là, l'arithmétique du pointeur standard s'applique, et vous voyez le 6ème caractère à partir de l'appel std::cout.operator<<.

1

buf.data() est défini pour renvoyer un pointeur sur le premier élément du tableau, et les éléments d'un Boost.Array sont définis comme contigus.

Donc buf.data() + 5 sera un pointeur vers l'élément (dans ce cas, le caractère) du tableau. Vous pouvez également écrire &buf[5] et obtenir le même pointeur.

Notez que dans le code ci-dessus:

std::cout << buf.data() + 5; 

vous tentez d'imprimer la valeur du pointeur, pas le caractère il pointe.

Questions connexes