私は常に関数を実行する必要があります。standartライブラリは使用できません。C++関数の型エラーの値は常にNULLです
My_cpy、my_len、my_strdupはここで機能します。それを確認してください。私はそれが簡単だと思うが、私はこの機能について問題がある。私はページの最後にエラーを示しました。私はそれがはっきりしていると思う。さらにこれはC++
ありがとうございます。
コード:
void my_cpy(char* dest, const char* src) {
int i = 0;
while (src[i] != '\0') {
dest[i] = src[i];
i++;
}
dest[i] = '\0';
}
int my_len(const char* p) {
int c = 0;
while (*p != '\0')
{
c++;
*p++;
}
return c;
}
char *my_strdup(const char *s) {
char* d = malloc(my_len(s) + 1); // Space for length + null
if (d == NULL) return NULL; //No memory
my_cpy(d, s); // Copy the characters
return d; // Return the new string
}
私は、この機能にエラーが発生しています。どうすればこの問題を解決できますか?
:型の値エラー(アクティブ) "void *型"
`Error C2440 'initializing': cannot convert from 'void *' to 'char *'`
が、私はそれを書いた "* char型" タイプの実体 を初期化するために使用することはできません
char* d = (char*) malloc(my_len(s) + 1)
ですが、現在問題があります。常にNULLです。
これはCですか、C++ですか? –
これはC++です。おそらく後で私はC言語で使用するだろう –
@UgurBakiこれは構文的にはC++かもしれないが、スタイルに関してはC++ではない。なぜあなたは 'strdup'のような関数を模倣しようとしていますか? 'std :: string'の何が問題なのですか?何かを学びたい場合は、独自の文字列クラスを作成しますか? – PaulMcKenzie