Alors la je seche

Alors la je seche - Ada - Programmation

Marsh Posté le 03-02-2003 à 17:26:47    

voila les bouts de code :
 
dans des fichiers .ads:

Code :
  1. subtype Address is Natural;
  2.    type Pointer is new Controlled
  3.      with record
  4.         Id : Natural range 0 .. Pointer_Max;
  5.      end record;


 
dans un fichier .adb:

Code :
  1. function Allocate return Pointer is
  2.    Addr : Address;
  3.    P : Pointer;
  4. begin
  5.    Addr := Allocate;
  6.    P.Id := Get_Free_Root;
  7.    Roots(P.Id).Addr := Addr;
  8.    Roots(P.Id).Counter := 1;
  9.    return P;
  10. exception
  11.    when No_More_Address => raise Out_Of_Space;
  12. end Allocate;


 
et voila la question : comment est-ce possible de faire Addr := Allocate lorsque Addr est à l'origine un "natural" et Allocate retourne un "Pointer"
pour info, ca compile, c pas une erreur dans le code
mais je capte vraiment pas
et si qqn a une explication a me donner, evidemment je suis preneur :)
en vous remerciant

Reply

Marsh Posté le 03-02-2003 à 17:26:47   

Reply

Marsh Posté le 03-02-2003 à 19:57:42    

petit up désespéré :(

Reply

Marsh Posté le 05-02-2003 à 10:14:47    

oui, merci, t'as raison
 
en effet j'avais oublié qu'il y'avait 2 fonctions allocate, une qui renvoie un "pointer" et l'autre une "address"
 
heu, sinon, pour le tas (heap) on doit le fabriquer nous meme non ?
et si oui, il faut le faire dans le programme de test, ou dans le package address_adt ?
 
t'es encore en train de bosser dessus?:)

Reply

Marsh Posté le 06-02-2003 à 09:29:37    

bienvenue au club
 
je crois que j'devais passer a 10h
or il est 09h32 et je suis encore chez moi...
 
de tte facon il me fallait soit une tres bonne note pour compenser le module de maths, soit rien...

Reply

Marsh Posté le 06-02-2003 à 15:03:45    

ah, et t'as fait koi alors ? et le prof a dit koi ? et t'as eu combien a peu pres?:)
moi j'y suis pas allé... j'ai trouvé plein de choses plus intéressantes a faire


Message édité par muad_dib le 06-02-2003 à 15:04:15
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed