IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

erreur : subscript requires array or pointer type


Sujet :

C++

  1. #1
    Membre régulier Avatar de GabrielD
    Homme Profil pro
    ingénieur de recherche
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur de recherche

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 88
    Points
    88
    Par défaut erreur : subscript requires array or pointer type
    Bonjour,
    Je développe en C++ avec les biblio OpenCV destinées au traitement d'image. Voici mon code:
    main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Mat Img = imread("..\\Lena.bmp");
    	bool *bitplane[8][256*256];
    	gscale2graybitplane( Img, bitplane);
    fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    void gscale2graybitplane( Mat &src, bool &bitp){
    	bool temp;
    	uchar val;
    	uchar comp[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
     
    	int i,j, k;
    	for(j = 0; j < src.rows; j++)// acces ligne
    	{
    		for(int i = 0; i < src.cols; i++)// access colonne
    		{
    			val = ((uchar*) (src.data + (i + j*src.cols)))[0];
    			temp = ((val & 0x80)== comp[0]);
     
    			bitp[0][i+j*src.cols] = temp;// recopie du MSB
     
    			for (k = 1; k<8; k++)// acces bit
    			{
    			bitp[i][i+j*src.cols] = temp ^ ((val & 0x40)== comp[k]);
    			}
    		}
    	}
    }
    les erreurs sont les suivantes:
    1>.\main.cpp(15) : error C2664: 'gscale2graybitplane' : cannot convert parameter 2 from 'bool *[8][65536]' to 'bool &'
    1>func.cpp
    1>.\func.cpp(20) : error C2109: subscript requires array or pointer type
    1>.\func.cpp(24) : error C2109: subscript requires array or pointer type

    j'ai beau retourner le problème dans tous les sens je ne trouve pas la solution... quelqu'un peut-il m'aider?

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void gscale2graybitplane( Mat &src, bool &bitp)
    Le second argument bitp est une référence vers un bool et non un tableau.

    Il en résulte que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bool *bitplane[8][256*256];
    gscale2graybitplane( Img, bitplane);
    => l'appel est erroné car bitplane est ici un tableau alors que la fonction gscale2graybitplane attend une simple instance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void gscale2graybitplane( Mat &src, bool &bitp){
    // ....
         bitp[0][i+j*src.cols]
    bitp n'étant pas un tableau, tu ne peux utiliser les opérateur[] dessus.


    La solution :
    utilise un vecteur : std::vector.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR XI] Erreur:"subscript must be between 1 and size of the array"
    Par lozeba dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/05/2010, 18h30
  2. [JSP][ERREUR]cannot be resolved to a type
    Par cameleon2002 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/02/2007, 10h39
  3. Réponses: 1
    Dernier message: 22/01/2007, 14h05
  4. Réponses: 9
    Dernier message: 21/10/2006, 13h38
  5. [VBA-E]transformer array en tableau type range
    Par matel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2006, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo