malloc (heap) vs. stack

  • hallo!

    wenn ich eine dynm. verkette liste von structs habe, deren listenlänge maximal ist,

    arbeite ich mit einer dynm. speicherallokation. aber wann/warum verwende ich "stacks" in C? Vor kurzem las ich (hab diese internet quelle aber leider nicht mehr gefunden) dass stacks im allgemeinen effizienter als malloc anforderungen sind, da sie nicht ständig den heap herumwurschteln.

    daher meine frage: wenn ich eine maximale länge von dyn. verketteten strucst benötige wobei es auf die reihenfolge dieser structs in meiner liste ankommt, (ich also bei einer lösch anforderung die zeiger umbiegen muss) kann ich dass auch effizienter mit stacks implementieren?

    in anderen worten: ich programmiere derzeit ein eine hardware, mit äußerst begrentzen ressourcen, diese nimmt neue struct elemente auf. von zeit zu zeit werde aber manche structs gelöscht, und die darauf folgenden in der liste müssen "nachrücken" was jedoch über zeiger realisiert wird. ich denke, dies ist effizienter als in einem array, weil eben nichts "wirklich" nachrückt. aber ginge es mit stacks nicht noch effizienter? oder geht es bei diesem stack vs. malloc nur um einen floh, den ich missverstanden habe?

  • ich glaub du verwechselst da was

    auch wenn du einen stack implementierst wirst du um malloc und konsorten nicht herumkommen

    ich glaube dort wo du das gelesen hast war mit stack gemeint, der Speicherbereich gemeint wo du deine sonstigen Variablen hinspeicherst -> int i;

    Four stages of acceptance:
    1.) this is worthless nonsense
    2.) this is interesting, but perverse, point of view
    3.) this is true, but quite unimportant
    4.) I alwas said so
    J.B.S. Haldane

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!