Forum: Mikrocontroller und Digitale Elektronik Frage zu Speicher


von Neuling (Gast)


Lesenswert?

Wenn ich einen char string[1000] deklariere, wo wird dieser 
Speicherbereich reserviert? Im RAM korrekt?

Die 1000 Byte werden während der gesamtem Programmlaufzeit gebunden. Bei 
einer nur selten genutzten Variablen wäre das eine 
Ressourcenverschwendung.
Falls ich nur ein Bruchteil benötige habe ich wieder eine 
Ressourcenverschwendung! Korrekt?

Ich bin absoluter Neuling des wegen meine etwas bescheidende Frage..

von Falk B. (falk)


Lesenswert?

Ja.

von Zeusi (Gast)


Lesenswert?

malloc? alloc? wenn ich mich nicht irre kann man den Speicher während 
der Laufzeit auch wieder Freigeben,..

Grüüüße

von Rolf Magnus (Gast)


Lesenswert?

> Wenn ich einen char string[1000] deklariere, wo wird dieser
> Speicherbereich reserviert? Im RAM korrekt?

Kommt drauf an. Welches System? Welche Hardware? Welche 
Programmiersprache?

von Neuling (Gast)


Lesenswert?

Linux BS, ARM9, C-Sprache

Woher wies ich wo diese Array Werte gespeichert werden ?

von Peter D. (peda)


Lesenswert?

Neuling wrote:
> Wenn ich einen char string[1000] deklariere, wo wird dieser
> Speicherbereich reserviert? Im RAM korrekt?
>
> Die 1000 Byte werden während der gesamtem Programmlaufzeit gebunden.

Nein, nur für die Lebenszeit dieser Variable
Wird sie in einer Unterfunktion definiert, ist der RAM nach Verlassen 
wieder frei (und die Variable ungültig).


> Bei
> einer nur selten genutzten Variablen wäre das eine
> Ressourcenverschwendung.

Spricht ja für eine lokale Definition nur bei Benutzung.


> Falls ich nur ein Bruchteil benötige habe ich wieder eine
> Ressourcenverschwendung! Korrekt?

In jedem Fall mußt Du die maximale Auslastung kennen und dann wäre es 
blöd, mehr als diese Länge zu reservieren.


Einfach nur auf blauen Dunst mal irgendwelche Puffergrößen zu definieren 
ist die Hauptursache von Blue-Screens. Egal wie groß, ohne Prüfung ist 
sie irgendwann zu klein.
Deshalb gibts den sizeof-Operator, den man z.B zur Begrenzung der 
Eingabe benutzen kann.


Peter

von Neuling (Gast)


Lesenswert?

Ok ! Alles klar - Prinzip verstanden !
Ich bedanke mich für diese Infos!!!

Der Neuling dankt den Leuten die immer so viel Geduld mit den Anfängern 
haben!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.