2 Stimmen

Wie wird die Warnung bei der Übergabe eines mehrdimensionalen Arrays als const multidimensional array beseitigt?

Mit dem folgenden Code:

/* signatures */
int getParams(char params[MAX_PARAM_LEN][MAX_LINE_LEN]);
int getVersion(const char params[MAX_PARAM_LEN][MAX_LINE_LEN],
               const char* tagName );
/* initializing */
char params[MAX_PARAM_LEN][MAX_LINE_LEN] = {};

/* getting parameters */
paramCount = getParams(params); /* OK, params match with getParams signature */

/* processing the params array */
i = getVersion(params, "version"); /* warning: passing arg 1 of `getVersion' from incompatible pointer type */

Ich sehe, dass die Konstante das Problem ist, aber ich weiß nicht, warum oder wie man es vermeiden kann. Was ich will, ist eine Funktion, die nicht die params mehr. Jeder Ratschlag ist willkommen (abgesehen von der Deaktivierung dieser Warnung oder dem Löschen von const in der Verarbeitungsfunktion).

Danke: Visko

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X