Delphi-PRAXiS

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.

braingrenade 27. Apr 2003 16:11

Liste der Anhänge anzeigen (Anzahl: 1)
Moin!

ich will eigentlich nur vergleichen ob der pointer synapsen[i2].inputneuron auf das neuron inputneuron[i] pointet .

das mit den objecten hab ich nicht gewußt , aber müsste doch eigentlich egal sein oder ?


am besten ist ich häng den Code mal hier ran dann kann jeder der will das teil mal anschauen.

Duffy 27. Apr 2003 16:12

Hallo,
deine Mail hat mich erreicht, kann aber die neuro22.zip nicht öffnen. Die Länge ist 0. Bitte nocheimal senden.

Danke

bye

Duffy 27. Apr 2003 16:28

Liste der Anhänge anzeigen (Anzahl: 1)
Hallo nocheinmal,
versuch es jetzt nocheinmal. Beim zweiten mal drücken Init Buttons bekomme ich noch eine Access violation

bye

braingrenade 27. Apr 2003 16:34

Jeeeeeehhhhaaaaaaaa!

funtzt soweit , sind zwar noch bugs drin aber egal !

Duffy 27. Apr 2003 16:39

Hallo,
gern geschehen ....

bye


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.

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