пытаюсь скопировать указатель символа с помощью memcpy, получаю ошибку
Вопрос
поэтому я хочу скопировать указатель на символ, спросил друга, и он сказал использовать 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
Решение
Во второй строке:
memcpy=(charFilename,charFilenameAndPath, sizeof(charFilenameAndPath));
есть подделка =
знак.
Как только вы это исправите, ваш вызов все равно будет неправильным. charFilenameAndPath
это возвращаемое значение из strtok()
, поэтому это должно быть char *
.Итак, вы копируете sizeof(char *)
байты в charFilename
, ты, наверное, хочешь strlen(charFilenameAndPath)+1
вместо этого байты (или вы можете использовать strcpy()
).В любом случае, вы должны убедиться, что strtok()
не вернулся NULL
и это charFilename
имеет достаточно места.
Другие советы
memcpy
за которым следует =
и не должно быть.В сообщении об ошибке говорится, что вы пытаетесь присвоить символу новое значение. memcpy
, а это не то, что вы хотите сделать.