begin process at 2012 05 29 13:49:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Pointeurs et changement de types louches


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pointeurs et changement de types louches

jeudi 8 juin 2006 à 11:45:34 | Pointeurs et changement de types louches

benlustr

Bonjour à tous. J'ai un problème bizarre : Je dois récupérer une image en niveaux de gris (0-255) en mémoire. Or, cette image est créée par une carte matrox, et est stockée dans un tableau à deux dimensions de types MIL_ID (spécial matrox). ce type occupe 4 octets (bizarerie : on a donc 4 pixels par élément du tableau) . Or, je voudrais récupérer les valeurs de chaque pixel pour les stocker dans un tableau de float (Float : également 4octets).

Pour accéder à mes éléments, j'ai donc deux pointeurs :

float *pfloat;
MIL_ID *pmil;


en toute logique, je fais pfloat = pmil. puisque les deux types occupent le même espace, puis je fais une boucle sur l'ensemble du tableau

for(i=0 ; i<taille_x ; i++)
    for(j=0 ; j<taille_y ; j++)
       *pfloat = *pmil;

or, grande surprise, je n'ai pas la même chose dans les deux tableaux. exemple, pour une cas donnée, je vais avoir :
          *pmil = $C8C100FF par exemple (c'est donc juste, ce sont bien mes pixels)
          *pfloat = $20000000 (j'ai toujours un truc de ce genre, un chiffre puis que des 0).

bref, je ne comprends pas pk mes données sont modifiées comme ça. J'ai essayé les opérateurs de cast, ça ne change rien !

Merci à vous, et bravo si vous trouvez !!!

Benjamin



jeudi 8 juin 2006 à 12:05:45 | Re : Pointeurs et changement de types louches

vecchio56

Administrateur CodeS-SourceS
Il faudrait voir la définition du type MIL_ID.
En tous cas je vois pas pourquoi tu utilises un float*. Le compilatur fait des conversion int->float, c'est normal que les valeurs soient codées différemment.
Si tu fais
int i = 0;
float f = i;
f et i seront codés différemment
jeudi 8 juin 2006 à 12:16:17 | Re : Pointeurs et changement de types louches

benlustr

Ouais.... bah c'est la merde
En gros, tu veux me dire que  int 10 et float 10 n'auront pas la même valeur en mémoire.ouais ... logique remarque.

En fait, pour récupérer mes valeurs, je fais un printf("valeur MIL = %x, valeur float = %x", *pmil,*pfloat);
ça serait donc lors de la copie (*pmil=*pfloat) que les données changeraient ?
jeudi 8 juin 2006 à 12:51:39 | Re : Pointeurs et changement de types louches

vecchio56

Administrateur CodeS-SourceS
Oui c'est lors de la copie.
Mais j'ai pas compris pourquoi tu utilises des float
jeudi 8 juin 2006 à 13:36:58 | Re : Pointeurs et changement de types louches

benlustr

En fait tout ça c'est pour une application très spécialisée avec du traitement d'image pour faire de l'holographie, et on a besoin d'avoir des floats pour ensuite pouvoir appliquer l'algorithme de calcul qui contient des transformées de fourier rapides sur des complexes. Bref, c'est purement mathématique.




Cette discussion est classée dans : tableau, types, pointeurs, pfloat, pmil


Répondre à ce message

Sujets en rapport avec ce message

Structures, pointeurs, malloc et realloc reunis !! :) [ par mindark ] Alors la, je suis completement coulé !Voila mon probleme :J'ai une tableau "grid" qui est un tableau de structures "cell" :struct cell {bool bloquant; Pointeurs et tableau de pointeurs [ par dragon3x6 ] Salut à la communauté des developpeurs C,j'essai d'écrire un bout de code qui enregistre une liste de mots dans une structure de type arbre.Lorsqu'un tableau de pointeurs de fonctions [ par trapic ] Bonjour,     J'aimerais réaliser une procédure appelant une liste de fonctions variables à argument variables. Exemple: //Le tableau des fonctions e passer un tableau de pointeurs en parametres [ par achirane ] bonjour,je debute en C (dur..) et j'ai un pb qui va surement vous faire ricaner ;-) :je voudrais passer un tableau de pointeurs en parametre a ma fonc pointeurs de tableau [ par _Jonathan ] salut a tousje cherche a lire dans un fichier (sa, sa va...) chaques lignes et les stocker dans un tableau.ex : *Tableau[];.........printf("texte 1 : Pointeurs fonctions de types inconnus [ par Galmiza ] Bien le bonjour,J`aimerai recuperer des pointeurs vers des fonctions dont je ne connais pas le type a l`avance.Ex:DWORD FonctionAlacon(char* pStr){  r Pointeurs et Tableau ansi que malloc [ par Hkz ] Bonjour à tous ;)     Alors voila pour mon prochaine programme j'ai besoin d'un tableau sans taille présise donc je me suis tourné vers les pointeurs Tableux de pointeurs : on fait comment ? [ par vincemail ] Bonsoir à tous, j'ai un petit problème tout bête : je n'arrive pas à faire un tableau de pointeurs pointant vers des objets, le tout dynamiquement... les types(debutants) [ par infodaoudi ] Bonjour,j'ai un fichier de données sous forme :0.001302  0.001234  0.001384  0.001465  0.000895  0.001641  0.001275  0.001363 0.001838  0.001221  0.00 Gestion dymamique de la taille d'un tableau de pointeurs [ par timy94 ] La taille d'un tableau de char lors de la déclaration est char * TAB[5];Comment en cours du programme augmenter la taille de TAB.Je n'arrive pas a uti


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,451 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales