Nein, Du solltest grundsätzlich immer nur Pointer auf structs übergeben. Ich werde aus deinem Code insofern nicht schlau, dass Du schreibst "function(CAMERA* pCam)". Was soll das sein? Es müsste "function yourfunctionname(CAMERA* pCam)" sein. Wenn Du dann ein CAMERA struct definierst wie zum Beispiel mit CAMERA MyCam, dann musst du an die Funktion einen Pointer übergeben. also zum Beispiel "myfunction(&MyCam);". Zudem solltest Du structs fast immer auf dem Heap erstellen und dazu malloc benutzen. Ich geb Dir hier mal ein einfaches Beispiel:
typedef struct MYCAMERA
{
int somedata;
}
void xyz(MYCAMERA* mc)
{
// Do something with the camera.
}
void main()
{
MYCAMERA* mycam = malloc(sizeof(MYCAMERA));
memset(mycam,0,sizeof(MYCAMERA)); // nicht notwendig aber immer eine gute Idee.
xyz(mycam);
}