[Allegro] Nochmals: ik,x etc.

Bernhard Eversberg ev at biblio.tu-bs.de
Di Apr 19 12:38:34 CEST 2011


Am 19.04.2011 12:25, schrieb Fischer, Thomas:
>  Jetzt ist schon fast alles klar. Aber wenn in #cc tatsächlich nur der
>  Zeiger auf eine Adresse des Arbeitspeichers steht, dann kann der ja
>  bei allen möglichen Aktionen fehlgeleitet werden, denn ob ein Eintrag
>  "VOR das betr. Feld" im Arbeitsspeicher eingefügt wird, kann der
>  Nutzer doch nicht entscheiden? Oder muss ich mir das ganze wie einen
>  großen zusammenhängenden Speicherbereich vorstellen, der von
>  Kategorie 0 bis zum (offenen) Ende geordnet vorliegt?
Genau das letztere.

>  In meiner
>  Mac-C-Programmierung gab es die Unterscheidung zwischen "Pointer"
>  (Zeiger auf einen Speicherbereich) und "Handle" (Zeiger auf einen
>  Pointer). Während ersterer auf eine feste Adresse verweist, die nach
>  Speicherverlagerung falsch werden kann, wird der Handle bei
>  Speicheraktionen mitgeführt und weist immer auf einen Pointer mit der
>  korrekten Adresse der Variablen. Ich hatte erwartet, dass in #cc das
>  Analogon eines Handles, nicht eines Pointers steht.
>
Mac und PC sind verschiedene Welten, Schlüsse von der einen auf
die andere sind unfundiert. In diesem Fall (C-Programmierung) wird
es aber so sein, daß das "Handle" der C-Variablenname ist und
der Pointer ist der Zeiger. Einen solchen Variablennamen, der also
geeignet wäre in dem speziellen Fall, haben wir hier nicht, sondern
der Feldinhalt steckt in einem Array und hat darin eine laufende
Nummer. Und diese wird sich bei Einschub eines neuen Feldes (vor
dem betreffenden) ebenfalls ändern, nicht nur der Zeiger.

>  Wie ist das jetzt korrekt *und* verständlich auszudrücken? In #cc
>  steht die Speicheradresse der zuletzt aufgerufenen Variablen, an
>  dieser Stelle findet sich der "Namen" und Inhalt der Variablen.
Ja.

>  Mit
>  #cc =xy e0 (warum e0?)
damit garantiert nichts ausgegeben wird durch diese Zeile

>  kann der *Inhalt* der entsprechenden Variablen
>  in #uxy überführt werden. Nach Ihrer Erklärung muss ich den Namen
>  etwa per #t{s0} #cc =xy #t{s4} in #uxy speichern, wenn ich zu einem
>  späteren Zeitpunkt nach der Bearbeitung von Kategorien verlässlich
>  darauf zugreifen will, dann geht aber nicht mehr #i2,2, sondern nur
>  #uxy i5,2 ... Ist das korrekt?
>
Ich denke schon.
B.E.


-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://bibservices.biblio.etc.tu-bs.de/pipermail/allegro/attachments/20110419/e4178604/attachment.html>


Mehr Informationen über die Mailingliste Allegro