指针问题--请教空指针的用法,请高人指点,谢谢!
typedef void *Ptr;
typedef HMMDef *HLink;
typedef float **SMatrix;
typedef SMatrix Matrix
typedef struct {
struct _HMMSet *owner;
short numStates;
StateElem *svec;
SVector dur;
SMatrix transP;
int tIdx;
int nUse;
Ptr hook; /* general hook */
} HMMDef;
typedef struct { /* attached to transP */
Matrix tran;
Vector occ;
int minDur;
} TrAcc;
HLink *al_qList;
TrAcc *ta;
ta = (TrAcc *)GetHook(al_qList[q]->transP);
/* return hook of m */
Ptr GetHook(Ptr m)
{
Ptr *p;
p = (Ptr *) m; p -=2; return *p;
}
请教问题
1、为什么这样居然能给 变量ta赋值呢,两个结构体根本扯不上关系啊?
2、“p -=2”是什么意思?
3、这里面涉及到哪些机制?我真的不懂,请高人指点:)要想对它有所掌握,需要看哪方面的知识呢?