Forum Programmation.c tableau de signed short int To unsigned short

Posté par  .
Étiquettes : aucune
0
11
juil.
2007
Bonjour tout le monde,

je voudrais copier le contenu d'un tableau de type unsigned char dans un tableau de type signed short int, mais je n'arrive pas.

En fait :
unsigned char BigTab[2000];
signed short int LittleTab[250];


je fait appel (4 fois) a une fonction qui me retourne le tableau LittleTab, et a chaque appel je copie le contenu du tablau LittleTab dans BigTab sans écraser le contenu du tableau BigTab, j ai esayer d'utiliser memcpy mais ça marche pas.

Est ce que quelqu'1 peu maider.


Merci d'avance.
  • # heu...faudrait etre plus precis

    Posté par  . Évalué à 2.

    unsigned char BigTab[2000];
    signed short int LittleTab[250];

    Suivant le systeme et la cible matériel le int à une taille variable.
    Sur un PC un int fais souvent 4 octet et comme 4 * 250 = 2000....
    Sinon poste plutot ton code si tu veut plus d'aide parce que la niveau information c'est plutot leger. Dire que memcpy ne marche pas est sans interet puisque tout le monde sait que memcpy marche c'est plutot ta facon de l'utiliser qui ne convient pas.Tout cela est dit sans méchanceté.
    Plus la question est techniquement motivé plus la réponse sera juste
    • [^] # Re: heu...faudrait etre plus precis

      Posté par  . Évalué à 1.

      desolé si j'été pa preci,


      voici le probleme;
      je declare:
      signed short int IMAGE[10000]; //tableau initialement vide et doit contenir des pixels ( chaque pixel codé sur 2 octet).

      unsigned char bloc[1024]; //tableau contenant des pixels

      //chaque 10 ms je recupere le tableau bloc et je le copie dans IMAGE, jusqu'a ce que le tableau IMAGE sera rempli( c'est a dire que les pixels de l'image seront tous reçu)

      explication:

      bloc[1024] = phase 1
      bloc[1024] = phase 2
      bloc[1024] = phase 3
      bloc[1024] = phase 4
      bloc[1024] = phase 5
      .....................................
      a chaque phase je copie le contenu du tableau bloc dans le tableau IMAGE jusqu'a ce que le tableau IMAGE soit rempli.

      Question :
      commenet assurer cette copie sans ecrasement et comment assurer l homogenité des données sachant que le tableau IMaGE ( chque case correspond a 2 octet = 1 pixel) et le tableau bloc chaque case correspond a 1 seul octet.


      Merci d'avance

      Cdlt
      • [^] # Re: heu...faudrait etre plus precis

        Posté par  . Évalué à 1.

        je ne comprend pas tout
        mais a premiere vue un truc du genre

        Index = 0;
        do
        {
        //attente 10 ms ou evenement bloc pres
        for(i=0;i<1024;i++)
        {
        image[Index]=(signed short int )bloc[i];
        image[Index++]&=0xFF;
        }
        }while(Index<=10000) ;

        devrait garantir que la transformation de 1 octet => 2 octet dans le tableau
        soit correctement faite.
  • # Commentaire supprimé

    Posté par  . Évalué à 1.

    Ce commentaire a été supprimé par l’équipe de modération.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.