Hello, I tried to reduce a program I couldn''t compile. You'll see it below. I'm wondering if I made a mistake or if it's really a bug. I found that the problem comes from : P_Vecteur = ^T_Vecteur = Nil; (Everything is fine if I suppress the "= Nil".) In other programs, this declaration doesn't cause any problem, even if P_Vecteur is the argument of a procedure (and here there is no problem until the last procedure). Is it something I should avoid ? Here is the output of GPC : ./temp24_u2.pas: In procedure `Diffvecteurs': ./temp24_u2.pas:29: initial value is of wrong type gpc1.exe: c:/djgpp/bin/gpc.exe exited with status 1 or it may say also : ./temp24_u2.pas: In procedure `Diffvecteurs': ./temp24_u2.pas:29: incompatible types in initialization ./temp24_u2.pas:29: initial value is of wrong type gpc1.exe: c:/djgpp/bin/gpc.exe exited with status 1 and from time to time : Exiting due to signal SIGSEGV General Protection Fault at eip=00172911 ... (GNU Pascal v 2.1 alpha (20020910) with DJGPP, on WindowsME) ****************************** Program temp24; Uses temp24_u2; Begin End. ****************************** Unit temp24_u2; Interface Type P_Vecteur = ^T_Vecteur = Nil; T_Vecteur(N:Cardinal) = Array [1..N] Of LongReal; Implementation Procedure AddVecteurs(Resultat,A,B:P_Vecteur); Var Taille : Integer; Tampon : P_Vecteur; Procedure Addition(Resultat,AA,BB:P_Vecteur); Var I : Integer; Begin For I := 1 To Taille Do Resultat^[I] := AA^[I] + BB^[I] End; Begin End; Procedure DiffVecteurs(Resultat,A,B:P_Vecteur); Var Taille : Integer; Tampon : P_Vecteur; Procedure Soustraction(Resultat,AA,BB:P_Vecteur); Var K : Integer; Begin For K := 1 To Taille Do Resultat^[K] := AA^[K] - BB^[K] End; Begin End; Begin End. ****************************** -- "Couperin"
participants (2)
-
Couperin -
Frank Heckenbach