9
votes

'memcpy' n'est pas défini dans cette portée

Je reçois un "memcpy n'est pas défini dans cette erreur d'application" avec la pièce de code suivante:

CommonSessionMessage::CommonSessionMessage(const char* data, int size) 
    : m_data(new char[size]) {
  memcpy(m_data.get(), data, size);
}


2 commentaires

@George: memcpy est dans .


hmm ouais tu as raison. Ma faute.


3 Réponses :


20
votes

Avez-vous inclué string.h / cstring (ou un autre en-tête qui comprend-la) au début de votre fichier de code?


0 commentaires

4
votes
#include<algorithm>

CommonSessionMessage::CommonSessionMessage(const char* data, int size) 
: m_data(new char[size]) 
{
    std::copy(data, data + size, m_data);
}

2 commentaires

Désolé, j'utilise Boost :: Scope_array pour cela. Mais laissez-moi vous essayer et je vous recontacterai. Merci.


Comment savez-vous si m_data a une fonction get () fonctionner? Nous ne connaissons pas son type; Nous savons seulement que c'est convertible vers un char * .



0
votes

J'avais le même problème (dans un fichier d'en-tête), même avec tous les chemins corrects inclus. S'est avéré que mon nom de fichier n'avait pas d'extension. Renommer le "tableau" à "Array.HPP" a résolu le problème pour moi. Erreur idiote ... solution facile.

(Je couronne la version Eclipse: Juno Service version 1, ID de construction: 20120920-0800 sur Mac OS X 10.6.8)


0 commentaires