1

lfind と bsearch が見つかった要素へのポインターを返した後、配列内の要素のインデックスを取得しようとしています。私はこれまでのところこれを持っています:

(char *) (found - cv->baseAddress); 

ここで、found は関数が検出したアドレスであり、ベース アドレスは要素 0 のアドレスです。ただし、コンパイラは次のエラーを返します。

cvector.c:150:28: 警告: 型 'void *' のポインターが減算で使用されています cvector.c:150:4: 警告: return はキャストなしでポインターから整数になります

私は何をしますか?

4

1 に答える 1

2

返されたポインターを正しい型に型キャストする必要があります。次に、取得したオフセットを配列内のオブジェクトのサイズで割り、インデックスを取得する必要もあります。

于 2013-04-25T09:57:05.113 に答える