Re: [maillist] C++ Problem

Dr.Stephan Melin (stephan.melin@neuss.netsurf.de)
Mon, 23 Aug 1999 22:49:24 +0200

On Fri, 20 Aug 1999, you wrote:
<SCHNIPP - die kleine Aufgabe mu=DF ich nicht noh mal quoten>
>=0D
>Hi.=0D
>=0D
>Koennte man so machen: ;-))=0D
>=0D
>main()=0D
>{=0D
>unsigned int index;=0D
>int array[ 21 ]; /* -10,-9,-8,...0 ,1,2,3,4...10 */=0D
> /* 0 1 2 10 20 */=0D
> /* Indizes laufen von 0 bis 20 */=0D
>int *ap;=0D
>/* ap ausrichten, dass er auf array[0] zeigt */=0D
>ap=3D&array[10];=0D
>=0D
>for ( index =3D -10 ; index!=3D11 ; index++ )=0D
> ap[index]=3Dindex;=0D
> =03=0D
>}=0D

Ein guter Compiler wird da ganz sch=F6n meckern!

index als unsigned und dann "index =3D -10" ???? Na, wenn das mal gut geh=
t...
Au=DFerdem ist die Abfrage "index !=3D 11" nicht gerade sch=F6n, besser "=
index < 11"
- ist besser verst=E4ndlich (und sicherer)...=20

Die Idee war aber trotzdem richtig...
Hier das Code Fragment (Beispiel: a mit Indices von -50 bis 50):
(Pointer Arithmetik ist doch was Feines...)

int *a;
=2E..
if ((a =3D malloc( 101 * sizeof( int))) =3D=3D NULL)
{
/* do some error processing here */
}
a +=3D 50;=20
=2E..
free( a - 50);
=2E..

Trotzdem sollte man solche Zaubereien wie oben nur sehr sparsam einsetzen=
, wer
schon einmal den eigenen Code nach zwei Wochen nicht mehr verstanden hat,=
wei=DF
was ich meine ;-) - Mit den heutigen C++ Biblitheken, sollten solche Ding=
e
eigentlich gar nicht mehr gemacht werden...

Beste Gr=FC=DFe

=09Stephan

--
Dr. Stephan Melin
EMail: stephan.melin@neuss.netsurf.de
Voice: +49-211-6006190