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

  FORUM HardWare.fr
  Programmation
  C

  Probleme : Tableau perd ses valeurs une fois sortie de la boucle

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme : Tableau perd ses valeurs une fois sortie de la boucle

n°2045112
freeskate6​3
Si tu peux l'éviter, lévite
Posté le 30-12-2010 à 12:14:44  profilanswer
 

Bonjour,

 

J'ai un problème, cela fait plusieurs jours que le bloque. J'ai une procédure qui est censé générer une matrice de codage sur 32 Bits pour l'algorithme de Reed-Muller (utilisé dans le codage d'images transmises par ondes radio).  
Lorsque le tableau  à deux dimension se voit affecté ses valeurs dans la boucle tout va bien, mais une fois sortie de la boucle, impossible de retrouver ses valeurs, le tableau contient des valeurs aléatoires, comme s'il n'avais pas encore été "affecté"...  voila le code (simplifié)

 
Code :
  1. void ReedMuller_32(int r){
  2. int *base;
  3. int b;
  4. int Max_Horz,Nb_Rep,Cord_X,Cord_Y,i,j;
  5. long double deux = 2;
  6. int Puissance_de_R = pow(deux,r) ;
  7. base = new int[Puissance_de_R * (r+1)];  // tab[i,j] = tab[i*j]  -- pour appel = tab[xi * i + xj]
  8. Max_Horz = Puissance_de_R;
  9. Nb_Rep = 1;
  10. for(Cord_Y=0;Cord_Y<Puissance_de_R+1;Cord_Y++){
  11.  Cord_X = 0;
  12.  b = 0;
  13.  for(i=0;i<Max_Horz;i++){
  14.   if (Nb_Rep==32){
  15.     if(b==0)
  16.      b=1;
  17.     else
  18.      b=0;
  19.   }
  20.   for(j=0;j<Nb_Rep;j++){
  21.    base[(Cord_X*Puissance_de_R) + Cord_Y] = b;
  22.    printf("%i",base[(Cord_X*Puissance_de_R) + Cord_Y]);
  23.    Cord_X++;
  24.   }
  25.   if(b==0)
  26.    b=1;
  27.   else
  28.    b=0;
  29.  }
  30.  printf("\n" );
  31.  Max_Horz = Max_Horz/2;
  32.  Nb_Rep = Nb_Rep * 2;
  33. }
  34. for(j=0;j<6;j++){
  35.  for(i=0;i<32;i++){
  36.   printf("%i",base[i*32 + j]);
  37.   printf(" " );
  38.  }
  39.  printf("\n" );
  40. }
  41. }
 

Voici une capture d'écran de l'execution. On voit bien le premier affichage en haut qui est correct, et le second en dessous ou les valeurs sont complêtements aléatoires comprises entre 0 et 254 (les tableaux de booléens en C sont en 8 bits?  :??: )

 

http://img502.imageshack.us/img502/65/execution.jpg

 

Merci de votre aide :sarcastic:


Message édité par freeskate63 le 30-12-2010 à 14:55:58
mood
Publicité
Posté le 30-12-2010 à 12:14:44  profilanswer
 

n°2045119
malka1986
Posté le 30-12-2010 à 13:07:56  profilanswer
 

C'est pas du C.
Ou alors le C a diablement changé depuis la dernière fois que j'en ai fait.

n°2045133
freeskate6​3
Si tu peux l'éviter, lévite
Posté le 30-12-2010 à 13:47:31  profilanswer
 

heu si c'est du C, j'utilise Microsoft visual C++ ...

 

C'est même du C++, mais je n'utilise pas les objets (du moins pas encore)...


Message édité par freeskate63 le 30-12-2010 à 13:49:03
n°2045143
Joel F
Real men use unique_ptr
Posté le 30-12-2010 à 14:08:50  profilanswer
 

non tu ecris du caca. printf n'est pas une fontion C++ et new n'est pas en C.
 
pour ton probleme, tu sais que ^ en C c'est bitwise xor et pas puissance ?

n°2045144
gilou
Modérateur
Modzilla
Posté le 30-12-2010 à 14:09:56  profilanswer
 

Tu nous montreras ou new et bool sont définis en C...
Et vu que tu as pas donné le code qui marche pas (car celui que tu as donné passe clairement pas à la compil, ça se voit à l'oeil nu), on va pas pouvoir te dire pourquoi ça marche pas (même si on s'en doute).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2045156
freeskate6​3
Si tu peux l'éviter, lévite
Posté le 30-12-2010 à 14:55:21  profilanswer
 

Joel F a écrit :

non tu ecris du caca. printf n'est pas une fontion C++ et new n'est pas en C.
 
pour ton probleme, tu sais que ^ en C c'est bitwise xor et pas puissance ?


 
Merci, le problème venait simplement de la,  le signe ^ ne m'a pas sauté aux yeux car j'ai presque pas fait de c et n'est pas l'habitude que ce symbol ne sois pas utilisé pour les puissances.  
 

gilou a écrit :

Tu nous montreras ou new et bool sont définis en C...
Et vu que tu as pas donné le code qui marche pas (car celui que tu as donné passe clairement pas à la compil, ça se voit à l'oeil nu), on va pas pouvoir te dire pourquoi ça marche pas (même si on s'en doute).
A+,


 
Je viens de voir que bool est pour le C#, je vais utiliser des int à la place.
 pour le new je sais pas... Mais c'est la seul manière que j'ai trouvé pour instancier les tableaux avec comme taille une variable.
 
 
J'ai mis à jour mon code si jamais

n°2045176
Elmoricq
Modérateur
Posté le 30-12-2010 à 16:19:54  profilanswer
 

Avec Visual C++,  tu codes en C++.
Ce qui signifie que même en s'astreignant à une syntaxe qui ressemble à du C, tu coderas en C++ (type naturel char, casts obligatoires sur void*, etc)
 
Utilise un compilateur C pour coder en C. Et un compilateur C++ pour coder en C++.
 
La suite Visual ne propose pas de compilo C je crois, tu peux utiliser Code::Blocks avec mingw-gcc pour coder en C si tu veux.

n°2045210
Joel F
Real men use unique_ptr
Posté le 30-12-2010 à 17:41:10  profilanswer
 


freeskate63 a écrit :


Je viens de voir que bool est pour le C#, je vais utiliser des int à la place.


 
en C++ aussi :o
 

freeskate63 a écrit :


 pour le new je sais pas


 
std::vector please

n°2045561
Trap D
Posté le 02-01-2011 à 10:49:13  profilanswer
 

Si on mets un fichier toto.c dans un projet Visual, il sera compile en C il me semble.


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

  Probleme : Tableau perd ses valeurs une fois sortie de la boucle

 

Sujets relatifs
[Résolu] Problème Commande ZIP UnixPaperVision3D : passer de la 2d a la 3d = problème de coordonnées :-/
Problème mysql fetch array [SOLVED]Besoin d'aide sur une boucle "if else if else"
Convertir un tableau en liste de données VBA sous Excel[C++] tableau de classe dans une autre classe ?
tableau d'associationprobleme avec hauteur de div à 100%
probleme avec tableau 
Plus de sujets relatifs à : Probleme : Tableau perd ses valeurs une fois sortie de la boucle


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR