繁体   English   中英

初始化指向结构的数组指针

[英]initializing array pointer to a struct

我收到错误运行时检查失败#3,我必须初始化P,我知道为什么但不知道如何做到这一点。

为了测试目的,点现在应该是像float * points [3]这样的可变2D数组,它现在是常量。

CVAPI(CvPOSITObject*)  lvCreatePOSITObject( float points[5][3], int point_count )
{
    CvPoint3D32f* P; //array of structs with int x,y,z 
    for(int i = 0; i< point_count; i++)
    {
        P[i].x = points[i][0];
        P[i].y = points[i][1];
        P[i].z = points[i][2];
    }
    return cvCreatePOSITObject(P,point_count);
}

我对OpenCV不太了解,但是我认为您应该分配一些内存来存储数据。

#include <stdlib.h> // add this to the head of the file to use malloc

CVAPI(CvPOSITObject*)  lvCreatePOSITObject( float points[5][3], int point_count )
{
    CvPoint3D32f* P; //array of structs with int x,y,z
    P = malloc(sizeof(CvPoint3D32f) * point_count); // allocate some memory
    for(int i = 0; i< point_count; i++)
    {
        P[i].x = points[i][0];
        P[i].y = points[i][1];
        P[i].z = points[i][2];
    }
    return cvCreatePOSITObject(P,point_count);
}

该代码可能是错误的,因为这可能无法释放分配的缓冲区。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM