エラーを取得、のmemcpyを使用してchar型のポインタをコピーしようとしています

StackOverflow https://stackoverflow.com/questions/2091507

  •  21-09-2019
  •  | 
  •  

質問

私はchar型のポインタをコピーしたいので、私はこれを行うにしようとしていますので...友人に尋ね、彼はの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

私も代わりはsizeof

のstrlenを使用してみました
役に立ちましたか?

解決

あなたの2行目:

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

スプリアス=記号があります。

あなたはそれを修正したら、

は、あなたの呼び出しが正しいとにかくではありません。 charFilenameAndPathstrtok()からの戻り値であるので、char *でなければなりません。だから、あなたはsizeof(char *)charFilenameバイトをコピーしている、あなたはおそらくstrlen(charFilenameAndPath)+1代わりにバイトしたい(またはあなたがstrcpy()を使用することができます)。いずれにせよ、あなたはstrtok()NULLを返しませんでしたし、そのcharFilenameは十分なスペースを持っていることを確認する必要があります。

他のヒント

memcpy=が続いているとあってはなりません。エラーメッセージは、あなたが何をしたいのかないのシンボルmemcpy、新しい値を代入しようとしていると言います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top