Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: String Array möglich? Kategorie: Programmierung C (von Torsten - 8.01.2011 15:03)
Als Antwort auf Re: String Array möglich? von Jo - 8.01.2011 10:18
Ich nutze:
C-Control Pro Mega32, CC-Pro 32 Application Board
> > >
> > > Hallo Florian,
> > > wie Joerg schon sagt, du must so was machen:
> > >
> > > char mein_test_array[2][14];
> > >
> > > Und nun beginnt aber auch gleich die Problematik:
> > > Die für den Zugriff benötigte Pointerlogik ist NICHT offizieller Bestandteil vom Compact C !!!
> > > Peter hat da zwar was eingebaut, aber es ist nicht offiziell und wird daher auch nicht
> > > Unterstützt. Für diese Funktionalität braucht Peter einen Auftrag von CONRAD.

> > > Daher sollten alle Nutzer sich über
> > > http://www.c-control.de/kontaktformular2.html
> > > an CONRAD wenden. Wenn sich genug an CONRAD wenden, bekommt Peter
> > > hoffentlich einen Auftrag.
> > > Unter http://ccpro.cc2net.de/forum/lesen.php?eintrag=5886 mit dem Titel
> > > Verwendung von 2 (mehr) Dimensionalen char-Arrays
> > >
> > > Ist die Problematik beschrieben.
> > >
> > > Viele Grü�e
> > >
> > > Jo
> >
> > Hallo Jo,
> >
> > eines möchte ich noch zu bedenken geben. Das C-Control System
> > ist meiner Meinung nach in erster Line für Programieranfänger entworfen.
> > Eine Zeigerlogik wie Sie zum Beispiel in STEP7 verwendet wird
> > dürfe für diese Zielgruppe schwer zu verstehen sein und bringt dann
> > sehr viele Fehlerquellen mit. Ich würde mir einen Adressoperator
> > mit dessen Hilfe man die Adresse einer Variablen ermitteln kann
> > wünschen. In C ist der '&' Operator üblich.
> > Also keine Zeiger sondern harte Referenzen.
> >
> > GruÃ? Torsten
>
>
> Hallo Torsten,
> ich stimme dir nicht zu.
> Wenn mehrdim. String arrays nicht unterstützt werden, dann
>
> 1) sollte Peter aber char arrays mit mehr als einer Dimension verbieten; was nützt es denn
> wenn ich diese Definieren kann aber nicht nutzen???
>
> 2) Dann sollte CONRAD in der Produktbeschreibung klar stellen, "Achtung: C-Control mit
> Compact C ist nur für einfachste Programme gedacht, Dinge wir Arrays von Strings können z.B.
> nicht verwendet werden."
>
> Peter hat ja auf seine eigene Initiative eine Einfache Pointerarithmetik eingebaut
> (indem z.B. array + 10 geschrieben wird, das ist aber nicht offiziell und kann jeder Zeit wieder
> Rausfliegen. Ich würde mir wünschen, dass sich genug User bei Conrad melden und
> Peter für die Implementierung einen Auftrag bekommt.
>
> Viele Grü�e
>
> Jo

Hallo Jo,

eigentlich braucht der '[ ]' Operator nur eine Referenz
auf ein anonymes Array zurückzugeben und schon können
wir mit wirklichen mehrdimensionalen Arrays arbeiten und
eben auch mit String-Arrays. Es ist also gar nicht notwendig
Speicheradressen selbst zu berechnen, oder aus anderen
Ausdrücken zu bilden. Die meisten neueren Hochsprachen
verzichten auf den Datentyp 'Zeiger' (C#, Perl, Java) und
verwenden dafür eben Referenzen, was natürlich auch ein
Zeiger ist nur eben ein konstanter, und das Objekt auf
welches er zeigt wird erst aus dem Speicher entfernt wenn
es keine Referenz mehr auf Dieses gibt. Selbst wenn es
seinen Gültigkeitbereich verlässt. Es entsteht dann ein
'Closure', also eine Variable die nur noch über ihre Referenz
erreichbar ist. Gerade auch eine Progrmmiersprache wie Perl,
welche sich der Textverarbeitung verschrieben hat, kommt
ohne den Datentyp Zeiger aus. Der Fehler in der
Implementierung von mehrdimensionalen Arrays bei unseren
C-Control System ist daÃ? eine Deklaration wie
z.B. 'char a_values[4][10]' nicht zu einen Array mit
4 Referenzen auf anonyme Arrays von je 10 Zeichen führt.

GruÃ? Torsten


    Antwort schreiben


Antworten:

Re: String Array möglich? (von PeterS - 8.01.2011 17:28)
    Re: String Array möglich? (von Jo - 8.01.2011 18:31)
        Re: String Array möglich? (von PeterS - 8.01.2011 18:45)
            Re: String Array möglich? (von Torsten - 9.01.2011 11:25)
                Re: String Array möglich? (von PeterS - 9.01.2011 12:21)