Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4876 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Recopie bit à bit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recopie bit à bit

n°1558900
Toegarf
Posté le 11-05-2007 à 14:26:32  profilanswer
 

Bonjour...
Ca fait un petit bout de temps que je me casse les dents sur ce probleme : je souhaite recopier le contenu de tmp dans une zone mémoire vide que je viens de mapper... mais GCC dit  

Code :
  1. TEST.c:100: error: subscripted value is neither array nor pointer


La structure :  

Code :
  1. struct EnTete_s {
  2.   int taille_zone; //Taille de la zone reservee en memoire
  3.   int nb_reallocation; //Nombre de re-allocation(s) de la zone reservee en memoire
  4.   int nb_liberation; //Nombre de liberation de la zone reservee en memoire
  5.   char* allocation_initiale; //Fonction a l'origine de l'allocation initiale
  6. };


Le code :  

Code :
  1. void* EnTete_Ecrire (void* pointeur, int taille_zone, int nb_reallocation, int nb_liberation, char* allocation_initiale) {
  2.   int i;
  3.   struct EnTete_s tmp;
  4.   if (taille_zone == 0 || nb_reallocation < 0 || nb_liberation < 0 || pointeur == NULL) return NULL;
  5.   tmp.taille_zone = taille_zone;
  6.   tmp.nb_reallocation = nb_reallocation;
  7.   tmp.nb_liberation = nb_liberation;
  8.   tmp.allocation_initiale  = allocation_initiale;
  9.   for (i = 0; i < sizeof (struct EnTete_s); i++)
  10.     pointeur = tmp[i]; //ERREUR !!!
  11. }

mood
Publicité
Posté le 11-05-2007 à 14:26:32  profilanswer
 

n°1558901
Taz
bisounours-codeur
Posté le 11-05-2007 à 14:28:56  profilanswer
 

tmp n'est ni un tableau ni un pointeur ...
memcpy

n°1558905
Toegarf
Posté le 11-05-2007 à 14:31:57  profilanswer
 

En lisant le man de memcpy je recopie directement n octets d'une source vers une destination si je comprends bien le man...
Donc dans mon cas ce serait :  
 

Code :
  1. memcpy (pointeur, &tmp, sizeof(struct EnTete_s))

n°1558916
Taz
bisounours-codeur
Posté le 11-05-2007 à 14:43:29  profilanswer
 

sizeof tmp tout simplement

n°1558987
Toegarf
Posté le 11-05-2007 à 15:52:01  profilanswer
 

MERCI pour ton aide... mais vu que tu a l'air meilleur que moi... voila un second probleme dans le meme genre :  
 
la réponse de mon gcc :  

Code :
  1. TEST.c:120: attention : implicit declaration of function `EnTete_lire'


mon code :  

Code :
  1. struct EnTete_s EnTete_Lire (void* tmp_pointeur) {
  2.   struct EnTete_s tmp_EnTete;
  3.   memcpy (&tmp_EnTete, tmp_pointeur, sizeof(struct EnTete_s));
  4.   return tmp_EnTete;
  5. }


l'appel de ma fonction :  

Code :
  1. struct EnTete_s tmp_EnTete;
  2. [...]
  3.   EnTete_Ecrire (20, 0, 0, "m" );
  4.   tmp_EnTete = EnTete_lire (map_debut); //ERREUR


n°1558991
Toegarf
Posté le 11-05-2007 à 15:54:10  profilanswer
 

Je n'ai rien dit... il s'agissait juste d'un probleme de case sur le nom de ma fonction

n°1559012
Taz
bisounours-codeur
Posté le 11-05-2007 à 16:23:19  profilanswer
 

Passe plutot Entete_s par pointeur en argument, ça sera plus efficace.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Recopie bit à bit

 

Sujets relatifs
Constructeur par recopie pour TableauBalayages feuille excel et recopie de certaines cellules
[Résolu][EXCEL] Recopie d'un fichier à l'autre par comparaison[JS][Résolu]Recopie d'un tableau
[shell]boucle for imbriquée pour recopie de fichierRecopie des fichiers en supprimant les lignes identiques
Probleme de recopie de champseffacer le début d'un fichier en evitant une recopie ?
philosophie constructeur par recopie / clone[VC++] Dll et STL: probleme de recopie (???)
Plus de sujets relatifs à : Recopie bit à bit


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)