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:

Code:
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);
}



Always learn from history, to be sure you make the same mistakes again...