Articles of pointeurs de

Différences lors de l’utilisation de ** en C

J’ai commencé à apprendre le langage C récemment, et j’ai de la difficulté à comprendre la syntaxe du pointeur, par exemple lorsque j’écris la ligne suivante: int ** arr = NULL; Comment puis-je savoir si: arr est un pointeur sur un pointeur d’entier arr est un pointeur vers un tableau de pointeurs vers des entiers […]

Pourquoi NSError a-t-il besoin d’une double indirection? (pointeur sur un pointeur)

Ce concept semble me troubler. Pourquoi un object NSError a-t-il besoin que son pointeur soit transmis à une méthode modifiant l’object? Par exemple, ne pas passer une référence à l’erreur ne ferait-il pas la même chose? NSError *anError; [myObjc doStuff:withAnotherObj error:error]; et ensuite dans doStuff: – (void)doStuff:(id)withAnotherObjc error:(NSError *)error { // something went bad! [error […]

C ++ passe un tableau par référence

est-ce permis de passer un tableau par référence? void foo(double& *bar) Semble que mon compilateur dit non. Pourquoi? Quelle est la bonne façon de passer un tableau par référence? Ou un travail autour? J’ai un argument de tableau que ma méthode devrait modifier et que je devrais récupérer après. Sinon, je pourrais faire de ce […]

Est-ce que le pointeur de fonction ralentit le programme?

J’ai lu sur les pointeurs de fonctions en C. Et tout le monde a dit que cela ralentirait mon programme. Est-ce vrai? J’ai fait un programme pour le vérifier. Et j’ai obtenu les mêmes résultats dans les deux cas. (mesure le temps.) Alors, est-ce mauvais d’utiliser le pointeur de fonction? Merci d’avance. Pour répondre à […]

Quels sont les dangers potentiels lors de l’utilisation de boost :: shared_ptr?

De quelles façons pouvez-vous vous tirer dans le pied lorsque vous utilisez boost::shared_ptr ? En d’autres termes, quels sont les pièges à éviter lorsque j’utilise boost::shared_ptr ?

Différence entre le tableau de passage, le tableau de taille fixe et l’adresse de base du tableau en tant que paramètre de fonction

Je suis confus quant à la syntaxe à utiliser si je veux passer un tableau de taille connue ou inconnue en tant que paramètre de fonction. Supposons que j’ai ces variantes dans le but: void func1(char* str) { //print str } void func2(char str[]) { //print str } void func3(char str[10]) { //print str } […]

Pourrais-je jamais accéder à l’adresse zéro?

La constante 0 est utilisée comme pointeur nul en C et C ++. Mais comme dans la question “Pointeur vers une adresse fixe spécifique “, il semble possible d’atsortingbuer des adresses fixes. Y a-t-il un besoin imaginable, dans un système quelconque, pour une tâche de bas niveau, d’accéder à l’adresse 0? Si c’est le cas, […]

Pourquoi certaines personnes préfèrent-elles «T const &» à «const T &»?

Donc, je me rends compte que const T& et T const& sont identiques et les deux signifient une référence à un const T. Dans les deux cas, la référence est également constante (les références ne peuvent pas être réaffectées, contrairement aux pointeurs). J’ai observé, dans mon expérience quelque peu limitée, que la plupart des programmeurs […]

Qu’est-ce que la double écanvas (par exemple, NSError **)?

Donc, j’ai vu ceci: error:(NSError **)error dans le doc Apple. Pourquoi deux écanvass? Quelle est la signification?

Récepteur de valeur vs récepteur de pointeur à Golang?

Il est très difficile pour moi d’utiliser un récepteur de valeur au lieu de toujours utiliser un récepteur de pointeur. Pour résumer à partir des documents: type T struct { a int } func (tv T) Mv(a int) int { return 0 } // value receiver func (tp *T) Mp(f float32) float32 { return 1 […]