【问题标题】:assignment from incompatible type c来自不兼容类型 c 的赋值
【发布时间】:2013-03-05 19:37:28
【问题描述】:

我不经常使用 C 或 C++,但我是 完成编译一个使用 opencv 检测人脸的文件,该文件是已经为 Windows 执行的 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;当 i 为 1 时 argv[i] 的值。

我会做 dea=argv[1]

但这会引发另一种错误,所以我采用了这种方法。

【问题讨论】:

  • 请发布完整的错误消息或最小的、可编译的测试用例。
  • argv 应该是 char** 类型而不是 char*** 类型

标签: c++ c linux compilation argv


【解决方案1】:

Argv 应声明为 char **argvchar *argv[],但您将其声明为 char **argv[],即 三元组 指针。

您正在尝试将 char * 分配给 char

【讨论】:

  • 是的,就是这样,它现在完美编译将尽可能选择作为答案(错过几分钟才能选择正确答案)。稍后
【解决方案2】:

我认为你的参数声明错误 应该是

char** args

char* args[]



不是

char** args[]

【讨论】:

    【解决方案3】:
    dea=argv[i];
    

    您将双指针 char** argv[] 分配给单指针 char* dea 。如果你想将 argv 的值赋给 dea,那么将 dea 作为双指针。

    char** dea;
    dea[i] = argv[i];
    

    【讨论】:

      猜你喜欢
      • 2019-08-09
      • 1970-01-01
      • 2019-06-05
      • 2013-05-15
      • 1970-01-01
      • 2012-09-02
      • 2014-12-14
      • 1970-01-01
      • 2014-07-27
      相关资源
      最近更新 更多