Shutter String C

@sheel
#4, sorry.
"Nun ein Vorschlag: Du findest meinen Fehler und du hast alles, was du brauchst :" <- Das ;-)

Gruss
cwriter
 
Also, da haben wir vor lauter Strings das Wesentliche vergessen :p

@dandy:
Du hast einen Pointer.
Für den reserviert du ein Array aus x Pointern.
Und davon bekommt in der Schleife jeder einen String gemalloct (bzw, genug Speicherplatz dafür)

Die Schleifenmallocs sollen so viel chars reservieren, wie Buchstaben benötigt werden (grob).
Also ca. Buchstabenanzahl Byte, weil ein einzelnes char ein Byte braucht.

Das Pointerarray-malloc am Anfang aber...
Ein Pointer hat je nach Computer zB. 4 oder 8 Byte,
und da werden aber nur so viel Byte reserviert, wie man Pointer haben will.
Man braucht das Vierfache/Achtfache

Also statt
C++:
char** str_ausgabe = (char**)malloc(size1);
theoretisch das:
C++:
char** str_ausgabe = (char**)malloc(size1 * 4);
bzw. das:
C++:
char** str_ausgabe = (char**)malloc(size1 * 8);
Und weil man das nicht computerabhängig haben will:
C++:
char** str_ausgabe = (char**)malloc(size1 * sizeof(char *));


@cwriter: Das Selbe, auch in Zeile 5, nur mit calloc :p
Bzw. dein Programm ist bei mir durch zufällig nicht abgestürzt,
also ausprobieren, ob das alles war, hab ich nicht können.
 
@sheel
Nö, Zufall ist das nicht. Netterweise beschwert sich das System nur über eine Heapcorruption, wenn man den Speicher wieder freigibt, und das tue ich nicht ;-)

Danke! Ich hasse diese Fehler...

Gruss
cwriter

/EDIT: Gerade getestet, so funktioniert's. Hat jetzt noch wer Lust auf'n Benchmark?
 
@ sheel und cwriter Danke, danke für die Hilfe - Jetzt kann die Prüfung kommen =)

Programm läuft!

Code:
char** str_ausgabe = (char**)malloc(size1 * sizeof(char*));

war ein super Tipp, bin irgendwie davon ausgegangen dass ein char* auch nur 1 Byte hat... naja solange programmier ich ja dann doch noch nicht :P

Schönen Abend euch noch! :)
 
@sheel
Ich habe einen geschrieben, aber die Resultate sind sehr zufällig, auch mit /Od und 1 Mio Durchläufen. Schlussendlich sind beide Codes von der Performance her etwa gleich (die paar Clockticks reissen auch keine Bäume mehr aus...)

@dandy
Von mir ebenfalls! Ich drücke dir die Daumen!

Gruss
cwriter
 
Zurück