Maison > Article > développement back-end > Quelle est la différence entre « void * » en C et C++ ?
Dans l'exemple suivant, lorsque nous écrivons du code, nous pouvons exécuter ces lignes Le code est en C.
void *p; int *int_ptr = p;
Cela fonctionne bien en C. Maintenant, si nous utilisons malloc() pour allouer de l'espace mémoire, nous Il est possible d’utiliser une conversion de type explicite, mais si ce n’est pas le cas, pas de problème. Le malloc() La fonction renvoie un pointeur nul.
int *int_ptr = malloc(sizeof(int) * 10);
Le pointeur void renvoyé ici est implicitement converti en un pointeur de type entier.
Maintenant, si nous voulons exécuter le même programme en C et C++, nous devons expliciter la conversion de type aiguille.
void *p; int *int_ptr = (int *) p; int *arr_ptr = (int *) malloc(sizeof(int) * 10);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!