Programme langage C error: subscripted value is neither array nor pointer nor vector
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Programme langage C error: subscripted value is neither array nor pointer nor vector



  1. #1
    stephy16

    Programme langage C error: subscripted value is neither array nor pointer nor vector


    ------

    Bonjour à tous, je viens vers vous car à la compilation de mon programme, l’erreur
    Code:
    c:55:118: erreur: subscripted value is neither array nor pointer nor vector
           pt.rouge = round((p[0].rouge + p[1].rouge + p[2].rouge + p[3].rouge + p[4].rouge + p[5].rouge + p[6].rouge + pt[7].rouge + p[8].rouge)*1.0 / i);
                                                                                                                          ^

    Voici la fonction qui pose problème
    Code:
    image fonction(image im_ori, image im_flo, int nb_flou)
    {
    
     int x, y, f, v, w, i;
     couleur pt, point1;
    couleur p[8]={0}; 
    
    if (nb_flou > 0) {
    		 for (f=1; f<= nb_flou; f++) {
    				// Les boucles for servent à balayer l'image d'origine par ligne (tous les x d'un seul y) (chaque ligne est balayé de gauche à droite)
    				for (y = 0; y < im_flo.hauteur; y++) {
    					for (x = 0; x < im_flo.largeur; x++) {
    						i=1;
    						for (v=-1; v<2; v++) {
    						for (w=-1; w<2; w++) {	  
    							if (((x+v)> -1) && ((x+v)<im_flo.largeur) && ((y+w)>-1) && ((y+w)<im_flo.hauteur))
    							{
    				
    							p[i]=lire_couleur(im_ori,x+v,y+w);
    							
    							i=i+1;	
    							}
    						
    						}	
    												
    						}							
    						
    						pt.vert = round((p[0].vert + p[1].vert + p[2].vert + p[3].vert +  p[4].vert + p[5].vert + p[6].vert + p[7].vert + p[8].vert )*1.0 / i);
    						pt.bleu = round((p[0].bleu + p[1].bleu + p[2].bleu + p[3].bleu +  p[4].bleu + p[5].bleu + p[6].bleu + p[7].bleu + p[8].bleu )*1.0 / i);
    						pt.rouge = round((p[0].rouge + p[1].rouge + p[2].rouge + p[3].rouge + p[4].rouge + p[5].rouge + p[6].rouge + pt[7].rouge + p[8].rouge)*1.0 / i); 						
    											// ecriture du point de l'image floue
    											change_couleur(im_flo, x, y, pt);
    					}
    				}							
    						// La boucle des opérations de flou va recommencer, pour que le points qui vient d'être calculé soient utilisé pour la nouvelle lecture et le calcul, il faut qu'il corresponde au point de l'image lu (im_ori)
    				im_ori=im_flo;
    		 }
    				
    }
    			else { 
    			printf("Erreur : Le nombre d'opérations de flou doit être strictement positif\n");
    		}
    return im_flo;
    }
    Pour info "couleur" correspond à trois entiers correspondant au rouge, vert et bleu.
    Visiblement la ligne en gras poserai problème, sauf que je ne comprends pas car mon tableau correspond à des "couleurs" et cela est reçu par quelque chose déclaré comme étant un composant "couleur"...
    Là je ne comprends pas comment corriger l'erreur donc si quelqu'un a une idée j'ai les yeux grand ouvert!

    Merci d'avance

    -----

  2. #2
    CM63

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    Bonjour,

    Ben oui, tu as écris "pt" au lieu de "p" .

  3. #3
    CM63

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    Y'a pas de quoi

  4. #4
    stephy16

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    bonjour, haha, j'aurai bien aimé que ça soit ça
    mais pt me sert à récupérer la moyenne des couleurs des différents pixels autour du point ou je suis placé. tandis que p[] est un tableau pour chacune de ses cases l'entité 'couleur' qui correspond à trois variables pour les trois couleurs. (En faite, cette boucle me permet de prendre les points de toute l'image, y comprit les côtés.)
    Après la question que je me pose qui pourrait être à l'origine du problème c'est : Est ce qu'il est possible d'avoir un tableau qui pour chacune de ses cases contient mon entité 'couleur' qui elle contient 3 variables?

    En tout cas merci pour ta réponse

  5. A voir en vidéo sur Futura
  6. #5
    pm42

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    Citation Envoyé par stephy16 Voir le message
    bonjour, haha, j'aurai bien aimé que ça soit ça
    Ca tombe bien, c'est ça. Tu as écris pt à la place de p. pt n'étant pas un tableau, pt[7] n'est pas valide comme le compilateur te l'indique.

  7. #6
    stephy16

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    Bonjour,
    ha ouai?? je vais tester ça de suite dans ce cas
    mais du coup cela signifie que quand je fais
    Code:
    change_couleur(im_flo, x, y, pt);
    je met dans im_flo, aux coordonnée x et y un tableau on est d'accord? Alors que ce que j'aurai voulu mettre c'est une entité 'couleur' qui a trois composantes rouge vert bleu..

    Merci pour ta réponse!

  8. #7
    stephy16

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    je viens d'essayer et ça donne ça:

    Code:
     Dans la fonction ‘fonction’:
    :53:8: erreur: request for member ‘vert’ in something not a structure or union
           p.vert = round((p[0].vert + p[1].vert + p[2].vert + p[3].vert +  p[4].vert + p[5].vert + p[6].vert + p[7].vert + p[8].vert )*1.0 / i);
            ^
    :54:8: erreur: request for member ‘bleu’ in something not a structure or union
           p.bleu = round((p[0].bleu + p[1].bleu + p[2].bleu + p[3].bleu +  p[4].bleu + p[5].bleu + p[6].bleu + p[7].bleu + p[8].bleu )*1.0 / i);
            ^
    :55:8: erreur: request for member ‘rouge’ in something not a structure or union
           p.rouge = round((p[0].rouge + p[1].rouge + p[2].rouge + p[3].rouge + p[4].rouge + p[5].rouge + p[6].rouge + pt[7].rouge + p[8].rouge)*1.0 / i);
            ^
    :55:117: erreur: subscripted value is neither array nor pointer nor vector
           p.rouge = round((p[0].rouge + p[1].rouge + p[2].rouge + p[3].rouge + p[4].rouge + p[5].rouge + p[6].rouge + pt[7].rouge + p[8].rouge)*1.0 / i);
                                                                                                                         ^
    :57:41: erreur: incompatible type for argument 4 of ‘change_couleur’
                change_couleur(im_flo, x, y, p);
                                             ^
    
    libimage.h:52:6: note: expected ‘couleur {alias struct <anonymous>}’ but argument is of type ‘couleur * {alias struct <anonymous> *}’
     void change_couleur(image im, int x, int y, couleur nouv);
    Cela vient du fait que dans ma fonction change_couleur je dois mettre dans le dernier argument une entité 'couleur'..

  9. #8
    pm42

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    Tu ne lis ni nos réponses ni ce que dit le compilateur qui avait mis un ^ pour te pointer sur l'endroit précis de l'erreur.

    J'ai un doute sur le ton de tes réponses aussi.

  10. #9
    stephy16

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    au punaise de punaise j'avais pas vu en effet j'ai un t en trop merci beaucoup à vous deux!!!!

  11. #10
    stephy16

    Re : Programme langage C error: subscripted value is neither array nor pointer nor vector

    et je ne savais pas que le ^ montrait ou était l'erreur un truc que tu viens de m'apprendre, donc doublement merci

Discussions similaires

  1. [Programmation] Arduino comparaison array of string avec array of char.. 2 jours.. ouff...
    Par nodoubtman dans le forum Électronique
    Réponses: 21
    Dernier message: 26/03/2016, 08h00
  2. [Programmation] error: invalid types 'double[int]' for array subscript -- Arduino
    Par Slaivers dans le forum Électronique
    Réponses: 15
    Dernier message: 26/12/2015, 19h52
  3. Programme en langage C
    Par ProgrammerJr dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 23/10/2014, 12h54
  4. Mon 1er programme Arduino ''error: at this point in file"
    Par hary dans le forum Électronique
    Réponses: 6
    Dernier message: 08/03/2012, 11h53
  5. Syntax error en langage C
    Par invite7449d44d dans le forum Programmation et langages, Algorithmique
    Réponses: 24
    Dernier message: 30/06/2011, 08h05