In C stoßen Entwickler häufig auf den Fehler „ungültige Konvertierung von ‚void‘ nach ‚char“. '" während Sie malloc zum Zuweisen von Speicher verwenden. Dieses Problem tritt auf, wenn die zurückgegebene Speicheradresse von malloc() falsch umgewandelt wird.
Im bereitgestellten Code wird das Problem in Zeile 5 behoben:
<code class="cpp">char *foo = malloc(1);</code>
Um dies zu beheben Bei diesem Problem ist es wichtig, den Rückgabewert von malloc() explizit in den gewünschten Typ umzuwandeln. In diesem Fall besteht das Ziel darin, einen Zeichenzeiger zu erhalten, daher wäre die richtige Zeile:
<code class="cpp">char *foo = (char*)malloc(1);</code>
Durch Hinzufügen der erforderlichen Umwandlung wird dem Compiler explizit mitgeteilt, dass die von malloc() zurückgegebene Adresse sein sollte als Zeichenzeiger behandelt. Durch diese Umwandlung wird sichergestellt, dass die Speicheradresse der Variablen „foo“ ordnungsgemäß zugewiesen wird, wodurch der Konvertierungsfehler behoben wird.
Das obige ist der detaillierte Inhalt vonWarum wirft Malloc in C den Fehler „Ungültige Konvertierung von „void' nach „char'' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!