Die lieben POINTER wollen schon wieder nicht....
-
Fg_getImagePtr(Fg,x,Port_A) gibt einen Zeiger auf den x-ten Bildpuffer zurück...
steht bei mir in der API.
Warum erzeugt nun:
char *a=Fg_getImagePtrEx(fg,lastPicNr,0,pMem0);den Fehler:
error C2440: 'initializing' : cannot convert from 'void *' to 'char '
1> Conversion from 'void' to pointer to non-'void' requires an explicit castvoid *a=Fg_getImagePtrEx(fg,lastPicNr,0,pMem0);funktioniert dagegen.
und wie speicher ich den im Pointer enthaltenen Wert (bzw. Bild) "wo anders hin".
Ich weiss Noobfragen :p sind schrecklich nervtötend, trotzdem danke....
-
Warum sollte ein char* zurückgegeben werden? Für undefinierte, binäre Daten benutzt man normalerweise void*, genau das macht deine Funktion.
Zum Umkopieren benutzt du am besten memcpy/std::copy, musst halt wissen wie viele Daten du hast.
-
unsigned char *myField = (unsigned char*) Fg_getImagePtrEx(fg,1,dma_no,pmem0);
-
Lepetitmort schrieb:
void *a=static_cast<void*>(Fg_getImagePtrEx(fg,lastPicNr,0,pMem0));Wir sind hier in C++, nicht C. In C++ müssen Void-Zeiger explizit gecastet werden (gut so!).
-
Ich bin immer davon ausgegangen mit Pointern geh ich folgendermassen um....
char *charZeiger; char Buchstabe = 'A'; charZeiger = &Buchstabe; //oder eben charZeiger = Fg_getImagePtrEx(fg,lastPicNr,0,pMem0)
-
Janjan schrieb:
Wir sind hier in C++, nicht C. In C++ müssen Void-Zeiger explizit gecastet werden (gut so!).
Von void* nach void* muss gecastet werden?
Ahja
-
1000 Dank an alle
