1
をintに私は機能のこの署名を持っている:クローンvoid *型のポインタ
void* cloneInt(const void* i);
このint
は、ハッシュ関数のキーを表します。私はハッシュテーブルの一般的な実装(この関数はint実装の一部であり、この関数は汎用の実装で使用される関数へのポインタとして転送される)のAPIにあるので、このクローン関数を持つ必要があります。 。 問題を理解しています:int
をどのようにクローンできますか? int
という同じ値を指すポインタを返す必要がありますが、メモリ内の別の場所です。これは私を非常に混乱させました。
あなたはそこ 'int'とストア' * i'にメモリを割り当てますか? – GSerg
これは動作しますか? void * cloneInt(const void * i) { int myInt =(int *)malloc(sizeof(int)); myInt = * i; return &myInt; } – Eyzuky
いいえ、あなたは 'int * myInt'を作成する必要があり、' * myInt = * i 'を割り当てる必要があります。 – GSerg