Articles of pointeurs de

Quand utiliser les pointeurs dans C # /. NET?

Je sais que C # donne au programmeur la possibilité d’accéder, d’utiliser des pointeurs dans un contexte dangereux. Mais quand est-ce nécessaire? Dans quelles circonstances, l’utilisation de pointeurs devient inévitable? Est-ce seulement pour des raisons de performance? Aussi, pourquoi C # expose-t-il cette fonctionnalité dans un contexte non sécurisé et en retire tous les avantages […]

Déclaration de tableau d’int

Y a-t-il une différence entre ces deux déclarations? int x[10]; contre. int* x = new int[10]; Je suppose que l’ancienne déclaration (comme la dernière) est une déclaration de pointeur et que les deux variables peuvent être traitées de la même façon. Est-ce que cela signifie qu’ils sont insortingnsèquement identiques?

Quelle est la différence entre retourner un caractère * et un caractère à partir d’une fonction?

Pourquoi la première fonction renvoie-t-elle la chaîne “Hello, World” mais la deuxième fonction ne retourne rien. Je pensais que la valeur de retour des deux fonctions serait indéfinie car elles renvoient des données hors de scope. #include // This successfully returns “Hello, World” char* function1() { char* ssortingng = “Hello, World!”; return ssortingng; } // […]

Comment puis-je obtenir la taille d’un tableau à partir d’un pointeur en C?

J’ai alloué un “tableau” de mystruct de taille n comme ceci: if (NULL == (p = calloc(sizeof(struct mystruct) * n,1))) { /* handle error */ } Plus tard, je n’ai access qu’à p , et je n’ai plus de n . Existe-t-il un moyen de déterminer la longueur du tableau uniquement en fonction du pointeur […]

Test des pointeurs pour la validité (C / C ++)

Est-il possible de déterminer (par programme, bien sûr) si un pointeur donné est “valide”? Vérifier NULL est facile, mais qu’en est-il de choses comme 0x00001234? Lors de la tentative de déréférencement de ce type de pointeur, une exception / crash se produit. Une méthode multi-plateforme est préférable, mais spécifique à la plate-forme (pour Windows et […]

Quel est le sharepoint la fonction pointeurs?

J’ai du mal à voir l’utilité des pointeurs de fonction. Je suppose que cela peut être utile dans certains cas (ils existent, après tout), mais je ne peux pas penser à un cas où il est préférable ou inévitable d’utiliser un pointeur de fonction. Pouvez-vous donner un exemple de bon usage des pointeurs de fonctions […]

Signification de int (*) (int *) = 5 (ou toute valeur entière)

Je ne peux pas comprendre cela: int main() { int (*) (int *) = 5; return 0; } L’assignation ci-dessus est compilée avec g ++ c ++ 11. Je sais que int (*) (int *) est un pointeur sur une fonction qui accepte un argument (int *) et retourne un int, mais je ne comprends […]

Pourquoi les pointeurs ne sont-ils pas initialisés avec NULL par défaut?

Quelqu’un peut-il s’il vous plaît expliquer pourquoi les pointeurs ne sont pas initialisés à NULL ? Exemple: void test(){ char *buf; if (!buf) // whatever } Le programme n’interviendrait pas dans le if car buf n’est pas nul. J’aimerais savoir pourquoi, dans quel cas avons-nous besoin d’une variable avec corbeille, spécialement des pointeurs adressant la […]

Pourquoi l’adresse zéro est-elle utilisée pour le pointeur null?

En C (ou en C ++), les pointeurs sont spéciaux s’ils ont la valeur zéro: il est conseillé de mettre les pointeurs à zéro après avoir libéré leur mémoire, car cela signifie que libérer le pointeur n’est plus dangereux; quand j’appelle malloc, il retourne un pointeur avec la valeur zéro s’il ne peut pas me […]

Pourquoi les pointeurs de fonction et les pointeurs de données sont-ils incompatibles en C / C ++?

J’ai lu que la conversion d’un pointeur de fonction en un pointeur de données et vice versa fonctionne sur la plupart des plates-formes mais n’est pas garantie pour fonctionner. pourquoi est-ce le cas? Les deux ne devraient-ils pas être simplement des adresses dans la mémoire principale et donc être compatibles?