Page 1 sur 1

copier un bloc memoire vers une structures c'est possible ?

Publié : dim. 28/oct./2007 0:12
par case
voila juste une question , est il possible de copier le contenu d'un buffer vers une structure ?

exemple j'ai une structure de ce type

structure blah
var1.b
var2.b
var3.b
end structure

variables.blah

j'ai en memoire 3 octets dans un bloc memoire (buffer)
ff00ff

est-ce que ca fonctionnerais si je fais un

copymemory(buffer,@variable,3)

et qu'ensuite je veux y acceder par
variable\var1
variable\var2
variable\var3

ou bien est-ce qu'une structure n'est pas stockée dans un bloc memoire contigu ?

(bon la j'ai pas pure sous la main pour tester)

Publié : dim. 28/oct./2007 8:39
par nico
Cela marchera sans problème.

Publié : dim. 28/oct./2007 9:20
par Dr. Dri
une autre solution sans copie de mémoire

Code : Tout sélectionner

Structure blah
  var1.b
  var2.b
  var3.b
EndStructure

*variables.blah = @"abc"

Debug Chr(*variables\var1)
Debug Chr(*variables\var2)
Debug Chr(*variables\var3)
Dri

Publié : dim. 28/oct./2007 10:31
par tmyke
Tu n'est pas obligé de copier tes données de la zone mémoire vers ta structure,
il te suffit de créer un pointeur de structure et de faire une init par référence,
un petit code pour illustrer la chose (en complement de celui de Dr Dri)

Code : Tout sélectionner

; structure de test
Structure blah
  var1.b
  var2.b
  var3.b
EndStructure

; creation d'une zone mémoire pour le test
*buffer = AllocateMemory(3)
PokeB(*buffer, 11)
PokeB(*buffer+1, 22)
PokeB(*buffer+2, 33)


*variables.blah = *buffer
Debug *variables\var1
Debug *variables\var2
Debug *variables\var3


FreeMemory(*buffer)

Publié : dim. 28/oct./2007 10:36
par case
mais c'est génial :)

merci de vos reponses :)