Article View: de.comp.lang.c++
Article #1357Re: Variablen in char[]
From: Claus Faerber
Date: Mon, 22 Jan 1996 21:23
Date: Mon, 22 Jan 1996 21:23
43 lines
1672 bytes
1672 bytes
You, Watson <sayegh@fokus.gmd.de> wrote about
Variablen in char[]
in article <310374EE.5322@fokus.gmd.de> of 22 Jan 96:
> Hi,
>
> dass
>
> f() {
> int x = 10;
> char s[x];
> }
>
> nicht geht, ist mir bekannt. Aber ist dies legal:
>
> f() {
> int x = 10;
> char *s = new char[x];
> }
>
> ??? Antwort bitte - auch - als PM, Thanx,
^^^^^^^
Auf welche Frage??
Wenn Du meinst, warum das so ist:
char s[x] wird entweder im Datensegment oder auf dem Stack
abgelegt, wo der Compiler schon beim Compilieren wissen muss, wie
gross das Array nachher sein wird, um zB. danach Platz fuer die
naechste Variable zu reservieren und entsprechenden Code zu
erzeugen.
Wenn Du das ganze per new anlegst, kommt der Speicher aus
dem Heap, der dynamisch vom c/c++-Laufzeitsysytem oder vom
Betriebssystem verwaltet wird und mit verschidenen Groessen
zurechtkommen muss. Ausserdem muss die Addresse nicht beim
Compilieren bakannt sein, weil das Program ja ueber den Pointer
darauf zugreift.
Read You,
Claus
------------------------------------------------------------------------
Claus Andre Faerber - claus@faerber.muc.de - http://www.muc.de/~cfaerber
Mitterfeldstrasse 20, D-83043 Bad Aibling, Germany - fax: ++49-8061-2057
------------------------------------------------------------------------
Technical Details
Message-ID:
<61L4T-EocDB@faerber.muc.de>Path:
arc1-ca.pugleaf.net!faerber.muc.de!clausReferences:
<310374EE.5322@fokus.gmd.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!faerber.muc.de!claus Date: 22 Jan 1996 22:23:00 +0100 From: claus@faerber.muc.de (Claus Faerber) Newsgroups: de.comp.lang.c++ Message-ID: <61L4T-EocDB@faerber.muc.de> References: <310374EE.5322@fokus.gmd.de> Subject: Re: Variablen in char[] X-Newsreader: CrossPoint v3.1 R/B17071