Je veux obtenir la taille de tout type "record" dans la fonction suivante. Mais semble que cela ne fonctionne pas:Est-il possible d'obtenir la taille du type pointé par un pointeur dans Delphi 7?
function GetDataSize(P : Pointer) : Integer;
begin
Result := SizeOf(P^); // **How to write the code?**
end;
Par exemple, la taille de l'enregistrement suivant est 8 octets
SampleRecord = record
Age1 : Integer;
Age2 : Integer;
end;
Mais GetDataSize(@a)
retourne toujours 1 (a est une variable de type SampleRecord bien sûr). Que devrais-je faire?
J'ai remarqué que Delphi a une procédure procédure Nouveau (var P: pointeur) qui peut allouer le bloc de mémoire correspond à la taille du type que pointe P. Comment peut-il obtenir la taille?
@Rob, merci pour les informations détaillées, je crois que c'est complier la magie. Je pense que cela explique aussi pourquoi il n'y a pas de "nouvelle" procédure. – trudger