C++的数组传递

来源:互联网 发布:数字抽奖软件在线 编辑:程序博客网 时间:2024/06/06 02:58

C++的数组传递    

     C++的数组传递都是通过指针传递的,这样就使得具有使用一个地址.

例如:

int face_features(cv::Mat image,float *gallery_fea){    cv::Mat img_gray;    if (image.channels() != 1)        cv::cvtColor(image, img_gray, cv::COLOR_BGR2GRAY);    else        img_gray = image;    face_recognizer.ExtractFeatureWithCrop(gallery_img_data_color, gallery_points, gallery_fea);    }
在face_features函数中,不必使用return语句将gallery_fea数组返回,因为它使用的是地址传递,而非数值传递.

 

    float face_feature[2048];//定义一个2048大小数组    while(!file.atEnd()) {        QByteArray line = file.readLine();        QString str(line);        str.chop(1);        qDebug()<<lines<<str;        image=cv::imread(str.toStdString());        memset(face_feature,0,sizeof(face_feature));//数组初始化        face_features(image,face_feature);//传递数组的首地址        for (int i=0;i<2048;i++){            ClusterCenters.at<float>(lines,i)=face_feature[i];        }        lines++;     }
 
原创粉丝点击