Heim  >  Artikel  >  Backend-Entwicklung  >  Warum wirft Malloc in C den Fehler „Ungültige Konvertierung von „void“ nach „char““ aus?

Warum wirft Malloc in C den Fehler „Ungültige Konvertierung von „void“ nach „char““ aus?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 00:02:30519Durchsuche

Why Does Malloc Throw an

Ein Problem mit ungültiger Konvertierung bei Verwendung von Malloc

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn