Maison > Article > développement back-end > Pourquoi Malloc renvoie-t-il une erreur « Conversion invalide de »void\» à « char » » en C ?
En C, les développeurs rencontrent fréquemment l'erreur "conversion invalide de 'void' en 'char '" tout en utilisant malloc pour allouer de la mémoire. Ce problème survient lorsqu'il y a une conversion incorrecte de l'adresse mémoire renvoyée par malloc().
Dans le code fourni, le problème est résolu à la ligne 5 :
<code class="cpp">char *foo = malloc(1);</code>
Pour rectifier cela problème, il est essentiel de convertir explicitement la valeur de retour de malloc() en type souhaité. Dans ce cas, le but est d'obtenir un pointeur de caractère, donc la ligne correcte serait :
<code class="cpp">char *foo = (char*)malloc(1);</code>
En ajoutant le transtypage nécessaire, le compilateur est explicitement informé que l'adresse renvoyée par malloc() doit être traité comme un pointeur de caractère. Ce casting garantit que l'adresse mémoire est correctement attribuée à la variable "foo", résolvant ainsi l'erreur de conversion.
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!