пытается скопировать указатель на символ с помощью memcpy, получая ошибку - PullRequest
1 голос
/ 19 января 2010

поэтому я хочу скопировать указатель на символ, спросил друга, и он сказал использовать memcpy ... поэтому я пытаюсь сделать это:

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

и компилятор выкладывает это:

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

Я также пытался использовать strlen вместо sizeof

Ответы [ 2 ]

2 голосов
/ 19 января 2010

Во второй строке:

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

есть ложный знак =.

Как только вы это исправите, ваш звонок все равно будет неправильным. charFilenameAndPath - это возвращаемое значение от strtok(), поэтому оно должно быть char *. Итак, вы копируете sizeof(char *) байт в charFilename, вы, вероятно, хотите вместо strlen(charFilenameAndPath)+1 байт (или вы можете использовать strcpy()). В любом случае вы должны убедиться, что strtok() не вернул NULL и что charFilename имеет достаточно места.

2 голосов
/ 19 января 2010

memcpy сопровождается = и не должно быть. В сообщении об ошибке говорится, что вы пытаетесь присвоить новое значение символу memcpy, а это не то, что вы хотите.

...