En C++, il ne peut pas attribuer simplement un pointeur d'un type à un pointeur d'un autre type (comme toujours il y a exception à la règle. Il est par exemple valide pour attribuer un tout pointeur vers un vide . pointeur)
Ce que vous devez faire est de jeter votre pointeur vide à un pointeur uint8_t:
buffer = (uint8_t *) malloc (numBytes);
note: Ceci est seulement nécessaire en C++, en C, il a été autorisé à mélanger et des pointeurs de match. La plupart des compilateurs C donnent un avertissement, mais c'est un code valide.
Puisque vous utilisez C++, vous pouvez également utiliser et d'en supprimer comme ceci:
buffer = new uint8_t[numBytes];
et se débarrasser de votre tampon à l'aide:
delete[] buffer;
En général, vous ne devriez pas utiliser malloc et gratuit, sauf si vous devez vous interfacer avec des bibliothèques c.
Utilisez un pointeur intelligent quelconque. – GManNickG