On Monday 09 May 2011 12:05:29 Fabian Hänsel wrote:
Ah, das erklärt auch, warum das Problem sogar dann auftrat, wenn ich statt srcsrc = malloc(..) nur malloc() verwendet habe (und also gar keine meiner Daten auf dem Stack landen).
Danke euch beiden & Viele Grüße Fabian (der nie wieder um sich Pointer zu ersparen der Einfachheit halber den Heap zumüllen wird)
Ich glaube Du hast hier gerade Stack und Heap verwechselt:
Stack ist das wo lokale Variablen landen. Heap ist das wo globale Variablen sind und wo malloc und new Daten hinlegen.
Beispiel:
int ich_bin_auf_dem_heap_und_global;
void funktion() { int ich_bin_auf_dem_stack; char *ich_zeige_auf_den_heap = malloc(1024); int *ich_zeige_auf_den_stack = &ich_bin_auf_dem_stack; /* nicht vergessen: */ free(ich_zeige_auf_den_heap); }
void absturz() { int hmm; int ich_bin_zu_gross[11*1024*1024]; int buuh; /*je nach Speicherlayout verursacht einer von beiden den Absturz:*/ hmm=buuh=1;/*SIGSEGV*/ }
int main() { int ich_bin_auch_auf_dem_stack; funktion(); absturz(); return 0; }
Konrad