Ich habe eine Funktion, die const some_type**
als Argument benötigt ( some_type
ist eine Struktur und die Funktion benötigt einen Zeiger auf ein Array dieses Typs). Ich habe eine lokale Variable vom Typ some_type*
deklariert und initialisiert. Dann rufe ich die Funktion als f(&some_array)
auf, und der Compiler (gcc) sagt:
Was ist das Problem hier? Warum kann ich eine Variable nicht in const konvertieren?
Siehe: Warum kann ich eine char **
nicht an eine Funktion übergeben, die eine const char **
erwartet? aus der FAQ zu comp.lang.c.
Sie haben ein paar Optionen, um herumzukommen, was jamesdlin in seiner Antwort umrissen hat.
Sie könnten eine Zwischenvariable verwenden.
%Vor% Sie könnten die Parameter von f
ändern.
Wahrscheinlich müssen Sie einen weiteren Kontext angeben, z. B., ob das Argument Daten an die Funktion übergeben oder nicht (oder beides?)?
Versuchen Sie, Ihre Variable auch const zu machen:
%Vor%Dies liest sich wie "some_array ist ein Zeiger auf einen const some_type". Der Code kann das Ding, auf das gezeigt wird, nicht ändern. Also müssen Sie Ihre Variable const deklarieren, bevor Sie sie an die Funktion übergeben.
(Bearbeitet ...)
Tags und Links c c++ gcc compiler-errors