/ / Mehrdimensionales Array übergeben, um in c zu funktionieren? - c, Arrays, Funktion, mehrdimensionales Array

Mehrdimensionales Array übergeben, um in c zu funktionieren? - c, Arrays, Funktion, multidimensionales Array

Ich habe eine Reihe von Zeichenfolgen wie folgt deklariert:

char parts[PART_COUNT][PART_MAX];

Dann habe ich eine Funktion erstellt, die einen String und ein Array von Strings nimmt und in diese Teile aufteilt, was folgendermaßen deklariert wird:

WORD PartString(const char *str, char **parts, char sep);

Ich kann scheinen, an Teilen [i] [j] zu lesen, aber wenn ich versuche, so zuzuweisen:

parts[i][j] = str[x];

Ich bekomme diesen Fehler:

Nicht behandelte Ausnahme um 0x012614d8 in remote.exe: 0xC0000005: Zugriffsverletzung beim Schreiben des Speicherorts 0xcccccccc.

Kann mir jemand einen Weg sagen, dies in C zu tun? Vielen Dank.

Antworten:

1 für die Antwort № 1
#define PART_MAX      1024
#define PART_COUNT    4

Ok, es gelang mir, das Problem zu beheben. Ich hatte meine Compiler-Warnungen deaktiviert und als ich sie wieder einschaltete, bekam ich Folgendes:

"char **" differs in levels of indirection from "char [4][1024]"

Hier ist die neue Deklaration, mit der ich die Zeichenfolgen im Array ändern kann:

WORD PartString(const char *str, char (*parts)[PART_MAX], char sep)

Dann passiere ich einfach als:

PartString(buffer, parts, ".");