Ich möchte eine Funktion schreiben, die eine Kopie eines doppelten Arrays mit Zeigern erstellt. Das ist mein Code bisher:
%Vor%Ich habe 2 Kompilierungsfehler, die ich nicht loswerden kann. Ich bekomme
ungültige Konvertierung von void * zu double *
wenn ich versuche, Speicher mithilfe von malloc zu reservieren, aber ich kann nicht verstehen, was ich falsch mache.
Sie kompilieren C-Code mit einem C ++ - Compiler.
Wenn Sie einen C ++ - Compiler verwenden, sollten Sie C ++ - Code schreiben, daher ist malloc()
in C ++ nicht so üblich, stattdessen
wäre guter C ++ - Code, wenn Sie free()
den Zeiger benötigen, müssen Sie
Sie können natürlich malloc()
in C ++ verwenden, aber es wäre so
weil void *
in C ++ nicht automatisch in einen beliebigen Zeigertyp konvertiert wird.
In c ist die Besetzung jedoch nicht notwendig, und in der Tat macht es den Code unnötig hässlich, abgesehen von dem Verbergen von Fehlern aus Ihrem Programm, hier Ich werfe das Ergebnis von malloc? .