J'utilise le struct CvPoint2D32f de OpenCV, qui est défini commeComment allouer un tableau de pointeurs vers une struct
typedef struct CvPoint2D32f
{
float x; /* x-coordinate, usually zero-based */
float y; /* y-coordinate, usually zero-based */
}
CvPoint2D32f;
Je suis en train d'affecter un tableau de pointeurs de ces objets comme suit, et ne fonctionne pas. Comment cela doit-il être accompli?
CvPoint2D32f *cvpoints[8];
for (i = 0; i < 16; i++)
{
if (i % 2 == 0)
{
(*cvpoints)[i/2].x = float(points[i]); // points is an array of ints.
}
else
{
(*cvpoints)[i/2].y = float(points[i]);
}
}
Ce sentiment de faire! Mais j'obtiens l'erreur d'erreur: conversion invalide de 'void *' en 'CvPoint2D32f *' – soxarered
Puis cast le retour de malloc avec '(CvPoint2D32f *)'. Mise à jour de la réponse ... –
Notez, cependant, qu'en C, vous ne devriez pas avoir besoin de renvoyer le retour de malloc au type de pointeur. Souvent, lorsque vous en avez besoin, c'est parce que vous compilez avec un compilateur C++. –