🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1357

Re: Variablen in char[]

#1357
From: Claus Faerber
Date: Mon, 22 Jan 1996 21:23
43 lines
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!claus
References: <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