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 TheBreton . Évalué à 2.
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 gabriel2006 . Évalué à 1.
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 TheBreton . Évalué à 1.
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 Anonyme . É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.