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

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Lug-dd maillist  -  [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an