次のデータ構造があります。
typedef struct {
size_t d; /* dimension of elements*/
TFComp fid; TFComp ord; /* fid and ord are some comparation functions*/
char *v, *s, *t; /* v points to the starting point of vector; s points to end of usable area of vector; t points to the end of available area */
} TMultime;
および宣言:
TMultime *m;
char *p=m->v; /* starting point */
char *q=m->s; /* end of usable area of vector */
そしてそれを言いましょうm->d = sizeof(int);
このベクトルの真ん中を見つけたいです。
私は試した*middle = p + (q - p)/2 * m->d;
そしてそれは失敗します。ベクトルに含まれていない値が得られます。
私はそれを正しくするためにいくつかの助けが必要です.