J'ai deux classes l'une est JPEG_Server et l'autre est JPEG_Client. A l'intérieur classe JPEG_Server Je disons déclaration suivante:memcpy() renvoie une exception après avoir été appelée dans une classe pour la copier dans une autre variable de classe.
class JPEG_Server
{
public:
unsigned char recv_buf[6];
};
Et en classe JPEG_Client Je suis en train de copier le contenu de * buf dans recv_buf en utilisant la fonction memcpy dans sa fonction d'envoi.
void JPEG_Client::send_data(char *buf, int len) //buf is coming from another class
{
memcpy(&JPEG_Server->recv_buf[0], &buf, len)
}
Mais il jette une exception et entre dans son .asm.
L'exception est comme ceci:
Exception thrown at 0x00C85579 in JPEG_Client.exe: 0xC0000005: Access violation writing location 0x00000000.
If there is a handler for this exception, the program may be safely continued.
Quelqu'un peut-il me aider ou commentaire que ce qui est mal à utiliser une fonction comme celui-ci?
'emplacement 0x00000000' ressemble unintialized' unsigned char recv_buf [6] 'membre – ikleschenkov
Vous écrivez sur' null', 'recv_buf' est pas initialisée. –
Essayez de fournir un [mcve]. Le contexte dans lequel votre fonction sera appelée est certainement un facteur dans votre problème. Les possibilités évidentes sont que 'JPEG_Server' ne pointe pas sur un objet, ou que' len' dépasse '6' ou le nombre de caractères dans' buf'. De même, '&' on '& buf' dans' memcpy() 'n'est pas strictement correct si votre intention est de copier des caractères. – Peter