SIGSEGV ptrString
-
@manni66 sagte in SIGSEGV ptrString:
@Abe sagte in SIGSEGV ptrString:
Names[I]
Da ist nichts das eine Adresse speichern könnte. Names ist NULL!
Hunderpunkte Schrelog
und Wie schaffe Ich es nun das Names[I] auf eine Addresse zeigen Kann ?char* Names[256] = (char*)malloc(sizeof(char)*Count); // Sollte Speicher für char Names[Adresse die ich frei räumen wollte ] //[256] // sollte dann in der forschleife genauer geschaffen werden Ja etwas unlogisch und verzweifelt char** Names = (char**)malloc(sizeof(char)*256*tmp) // sollte platz fur tmp* strings schaffen auch War das logischste was ich versucht habe char Names[Count][256] ; // Das selbe Wollte den Fehler anders als mit =NULL wegbekomm // realloc half Mittels char**Names = NULL; Names = (char**)realloc(sizeof(char)*256*tmp) Eigentlich auch sinlos // oder verwendet wie malloc oben
ich möchte halt auch die auf dem jeweiligen system vorhanden layer und extentions verwenden
-
@Abe Dann erklär mal für jeden deiner Versuche, was genau er machen soll.
Im Übrigen: sizeof(char) ist immer 1.
-
typedef char LayerName[VK_MAX_EXTENSION_NAME_SIZE]; ... LayerName *Names = malloc(Count*sizeof*Names); for(uint32_t i=0; i<Count; i++) strcpy(Names[i],Props[i].layername); for(uint32_t i=0; i<Count; i++) /* Testausgabe */ puts(Names[i]); free(Names); ...
-
@Abe sagte in SIGSEGV ptrString:
schlägt Kdevlop vor Names[Count][256]
Das ist ebenfalls sinnbefreit, da VLA.
Und sowas schlägt KDevelop vor?!
-
char** Names = NULL //Schlägt es vor Names[Count][256] war meine idea
Danke auf jeden fall das sieht auch Etwas logischer aus.
Eine frage eribt sich noch// Warum funktioniert typedef char[256] str; str*Name = malloc(sizeof(char)*3*256) // beispiel //und char*Names[256] = malloc(sizeof(char)*3*256) // nicht
Das stell doch das selbe dar oder nicht?
-
@Abe
Das ist nicht dasselbe,- ist ein Zeiger auf ein char-Array
- ist ein Array von char-Zeigern
Ein Zeiger ist kein Array, ein Array ist kein Zeiger. (Wann welche Besonderheiten gelten, sagen dir C-Profis im Schlaf, alle anderen (inkl. C++ler) parlieren zwar darüber, haben aber keine Ahnung davon)
-
Alles klar wir wohl noch etwas dauern bis ich das richtig verstanden habe.
-
@manni66 sagte in SIGSEGV ptrString:
Im Übrigen: sizeof(char) ist immer 1.
Und
sizeof(char*)
ist was anderes.
-
@DirkB sagte in SIGSEGV ptrString:
@manni66 sagte in SIGSEGV ptrString:
Im Übrigen: sizeof(char) ist immer 1.
Und
sizeof(char*)
ist was anderes.Tja nur das im vom Abe gezeigten code nirgends sizeof(char*) auftaucht.
-
@firefly sagte in SIGSEGV ptrString:
Tja nur das im vom Abe gezeigten code nirgends sizeof(char*) auftaucht.
Aber an manchen stellen sollte.