Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pointer Problem (https://www.delphipraxis.net/4400-pointer-problem.html)

braingrenade 27. Apr 2003 15:04


Pointer Problem
 
Moin Leute !


ich will den Wert der Adresse eines pointers verändern :

Delphi-Quellcode:

var
i : integer;
p : ^integer;

procedure z ;
begin
p^ := 10 ;
end;
das gibt bei mir nen fehler!

Duffy 27. Apr 2003 15:16

Hallo,
und worauf zeigt der Zeiger, vermutlich ist das Nirwanna, die ewigen Jagdgründe des Halbleiters.
Versuch's mal so
Delphi-Quellcode:
var
i : integer;
p : ^integer;

procedure z ;
begin
P := @i;
p^ := 10 ;
end;
bye

APP 27. Apr 2003 15:24

Hallo,

aus der OH:
Das folgende Beispiel zeigt, wie Zeiger funktionieren:

Delphi-Quellcode:
    var
      X, Y: Integer;  // X und Y sind Integer-Variablen
      P: ^Integer;    // P zeigt auf einen Integer
    begin
      X := 17;        // Einen Wert an X zuweisen
      P := @X;        // Adresse von X an P zuweisen
      Y := P^;        // P dereferenzieren; Ergebnis an Y zuweisen
    end;

braingrenade 27. Apr 2003 15:27

Moin duffy !

das weiß ich eigentlich schon , habs nur vergessen hinzuschreiben:roll:
naja , egal ,hier der richtige code , der der die probleme verursacht:
Delphi-Quellcode:
...
synapsen[i2].inputneuronen := @inputneuronen[i];
...
if inputneuronen[i].indentifier =
synapsen[i2].inputneuronen^.indentifier^ then ....//Pointer type required
...
synapsen[i2].inputneuronen^.input^ :=
synapsen[i2].inputneuronen^.input^ + ... //Pointer type required
...
hoffentlich wird's jetzt klar !

Duffy 27. Apr 2003 15:36

Hallo,
Du solltest besser noch die Struktur des Records und der beteiligten Variablen bereitstellen, dann wird das Problem vielleicht besser sichtbar. Auf jeden Fall passen da schon mal zwei Pointer Typen nicht zueinander.

bye

braingrenade 27. Apr 2003 15:39

jop, hier isses :

Delphi-Quellcode:
type Tneuron = object
   schwellenwert : integer;
   input : integer;
   output : integer;
   indentifier : Integer;
end;

type Tsynapse = object
   durchlass : integer;
   benutzung : Integer;
   inputneuronen : ^Tneuron;
   outputneuronen : ^Tneuron;
   indentifier : Integer;
end;

Duffy 27. Apr 2003 15:45

Hallo,
lass mal bei indentifier^ das ^ weg. Du hast da eine Integer Variable, die kein Zeiger ist.

bye

braingrenade 27. Apr 2003 15:50

Moin !

Nee, nee ,ich will eigenltich nur feststellen ob welches neuron die synapse anpointet !

Duffy 27. Apr 2003 16:00

Hallo,
wenn es Dir nichts ausmacht, dann kannst Du mir mal dein Projekt mailen.
Ich schau dann mal, wasi ich für Dich tun kann. OK?

bye

PS. Eine Stunde mache ich noch ....

Christian Seehase 27. Apr 2003 16:05

Moin Braingrenade,

da identifier und output als integer und nicht als Pointer deklariert sind, kannst Du auch nicht dereferenzieren (also ^ verwenden).

Warum hast Du das eigentlich als object deklariert?

Zitat:

Zitat von Delphi-Hilfe
Objekttypen werden nur aus Gründen der Abwärtskompatibilität unterstützt und sollten in neuen Anwendungen nicht mehr verwendet werden.

Solange nur Daten enthalten sind wäre wohl record, packed record sinnvoller.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz