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
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Lug-dd maillist - [email protected] https://ssl.schlittermann.de/mailman/listinfo/lug-dd
