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