2010-01-19 8 views
1

donc je veux copier un pointeur char, demandé à un ami et il a dit utiliser memcpy ... donc je suis en train de le faire:essayant de copier un pointeur char à l'aide memcpy, obtenir une erreur

charFilenameAndPath=strtok(filename,"."); 
memcpy=(charFilename,charFilenameAndPath, sizeof(charFilenameAndPath)); 

et le compilateur crache ceci:

 
uTrackSpheres.cpp:176: error: assignment of function ‘void* memcpy(void*, const void*, size_t)’ 
uTrackSpheres.cpp:176: error: cannot convert ‘unsigned int’ to ‘void*(void*, const void*, size_t)throw()’ in assignment 

J'ai aussi essayé d'utiliser strlen au lieu de sizeof

Répondre

2

Dans votre deuxième ligne:

memcpy=(charFilename,charFilenameAndPath, sizeof(charFilenameAndPath)); 

il y a un signe = parasite.

Une fois que vous corrigez cela, votre appel n'est pas correct de toute façon. charFilenameAndPath est la valeur de retour de strtok(), il doit donc être un char *. Donc, vous copiez sizeof(char *) octets à charFilename, vous voulez probablement strlen(charFilenameAndPath)+1 octets à la place (ou vous pouvez utiliser strcpy()). Dans tous les cas, vous devez vous assurer que strtok() n'a pas renvoyé NULL et que charFilename a suffisamment d'espace.

2

memcpy est suivi d'un = et ne devrait pas être. Le message d'erreur indique que vous essayez d'attribuer une nouvelle valeur au symbole memcpy, ce qui n'est pas ce que vous voulez faire.

Questions connexes