Re: [maillist] C++ Problem

Dr.Stephan Melin (stephan.melin@neuss.netsurf.de)
Fri, 20 Aug 1999 20:50:21 +0200

On Fri, 20 Aug 1999, you wrote:
>> 'n' belegt genau* einen Speicherplatz der Gr=F6=DFe char=0D
>> "n" belegt genau* zwei Speicherpl=E4tze der Gr=F6=DFe char =0D
>>=0D
>> "Strings" sind immer Null-terminiert...=0D
>>=0D
>> "n" pa=DFt also nur in ein Array x mit der Deklaration:=0D
>> char x[2] (oder mehr)=0D
>Das wiederum sind allerdings 3 Bytes, n=E4mlich das x[0] f=FCr die L=E4n=
genangabe, =0D
>wenn ich richtig liege, das x[1] f=FCrs 'n' und das x[2] f=FCr '\0' (00 =
hex).=0D

Ahh - da spricht einer der Verseuchten ;-)

char x[2]; =20

Sind _genau_ zwei chars:
x[0] und x[1], beim Zugriff auf x[2] kann es (mu=DF aber nicht) schon ein=
mal
einen sch=F6nen core-Dump geben.

Array Deklarationen vom Typ:
<type> array[N];
haben genau N Elemente, von 0 bis (N-1).

Der Zugriff:
array[10] ist ja sowieso nur eine Kurzform von *(array+10)

Mit *array (oder *(array+0)) hast Du ja schon das erste Element.=20

FORTRAN Programmierer z=E4hlen von 1 bis N
C Entwickler von 0 bis (N-1)

Bei der L=E4ngenangabe im 0. Element g=E4be es noch ein anderes nettes Pr=
oblem:
char x[256];=20
w=FCrde schon nicht mehr gehen (wenn ein char 8 Bit ist und per default u=
nsigned).

Wie schon gesagt: es gibt keine Strings in C.

Ich empfehle allen wirklich mal in den K&R reinzuschauen (die Jungs m=FCs=
sens
n=E4mlich wissen)...

Beste Gr=FC=DFe

=09Stephan

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