2010-03-04 5 views
2

Cela ne compile pas en VSC++ 2008.Ajoutant à une adresse mémoire Erreur

void* toSendMemory2 = toSendMemory + 4; 

Je suis à une perte à la raison pour laquelle, bien que je suis sûr qu'il est très stupide de ma part. : P

+2

Je pense que c'est parce que le compilateur ne sait pas combien d'octets un "void" prend, mais cela fait beaucoup de temps depuis que j'ai fait du C++. Essayez de diffuser par e-mail un octet *. –

+0

Qu'est-ce que 'toSendMemory'? Comment est-il déclaré? Quel type est-ce? Quel message d'erreur obtenez-vous? S'il vous plaît, essayez de poster au moins les informations critiques. – AnT

Répondre

11

Lorsque vous ajoutez N à un T* le pointeur sera incrémenté par sizeof(T) * N octets. est absurde, donc l'arithmétique du pointeur sur void* n'est pas autorisée.

+0

Casting en tant que char * avec succès. Merci! :) – bobber205

2

Vous ne pouvez pas effectuer d'arithmétique de pointeur sur les pointeurs de vide. Essayez d'abord de lancer (toSendMemory) vers un (char *) (en supposant que vous souhaitiez ajouter 4 octets).

Questions connexes