1

だから私はcharポインタをコピーしたい、友人に尋ねると、彼はmemcpyを使うと言った...だから私はこれをやろうとしている:

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

コンパイラはこれを吐き出しています:

uTrackSpheres.cpp:176: エラー: 関数 'void* memcpy(void*, const void*, size_t)' の割り当て
uTrackSpheres.cpp:176: エラー: 代入で「unsigned int」を「void*(void*, const void*, size_t)throw ()」に変換できません

また、sizeof の代わりに strlen を使用してみました

4

2 に答える 2

2

memcpyの後に a が続き=ます。エラー メッセージは、シンボル に新しい値を代入しようとしていることを示していますがmemcpy、これはやりたいことではありません。

于 2010-01-19T06:19:08.100 に答える
2

2行目で:

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

偽の=兆候があります。

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

于 2010-01-19T06:26:30.833 に答える