присвоение из несовместимого типа c

Я не использую C или C ++ слишком часто, но я о
чтобы завершить компиляцию файла, который обнаруживает лица с помощью opencv, который является копией файла c ++, который уже делает это для окон, предназначен для тегирования в социальной сети, следующая ошибка, которую я получаю с кодом при компиляции, следующая

In function 'main':
warning: assignment from incompatible pointer type

int main( int argc, char** argv[])
{
char* dea;

int i=0;
while(i<argc)
{
if(i==1){
dea=argv[i];
}
i++;
}

char image[400],temp_image[400];IplImage  *img,*temp_img;
int       key;storage = cvCreateMemStorage( 0 );
cascade = ( CvHaarClassifierCascade* )cvLoad( face_cascade, 0, 0, 0 );

if( !(cascade) )
{
fprintf( stderr, "ERROR: Could not load classifier cascade\n" );
return -1;
}sprintf(image,"dimage%d.jpg");

img=cvLoadImage(dea,0);
temp_img=cvLoadImage(dea,0);

if(!img)
{
printf("Could not load image file and trying once again: %s\n",image);
}
printf("\n curr_image = %s",image);

detectFacialFeatures(img,temp_img);cvReleaseHaarClassifierCascade( &cascade );
cvReleaseMemStorage( &storage );

cvReleaseImage(&img);
cvReleaseImage(&temp_img);return 0;
}

Я хочу иметь возможность отправлять в argv [] в качестве первого аргумента после исполняемого файла местоположение фотографии, подлежащей анализу, поэтому я попытался с помощью цикла присвоить char * dea; значение argv [i], когда i равно 1.

Я бы сделал dea = argv [1]

но это выдает ошибку другого рода, поэтому я выбрал этот подход.

0

Решение

Аргв должен быть объявлен как char **argv, или же char *argv[], но вы объявили это как char **argv[] это тройной указатель.

Вы пытаетесь назначить char * к char,

9

Другие решения

Я думаю, что ваши аргументы объявлены неправильно
так должно быть

char** args

или же

char* args[]

не

char** args[]
3

dea=argv[i];

Вы назначаете двойной указатель char** argv[] к одному указателю char* dea , Если вы хотите присвоить значение argv для dea, тогда возьмите dea в качестве двойного указателя.

char** dea;
dea[i] = argv[i];
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector