我目前正在修改转储程序,但我无法弄清楚如何使用 void 指针正确导航。下面是我正在使用的功能,以及我正在尝试执行的指令。我尝试将 mem 转换为结构,但我不确定 sytnax 并且我不断收到错误消息。对于下面的代码,我得到的具体错误是:
47 | mem = mem->tcbtio
===========> .........a..............................................
*=ERROR===========> a - CCN3122 Expecting pointer to struct or union.
这是我的功能:
void hexdump(void *mem, unsigned int len)
{
mem = mem->tcbtio;
...
}
这是我的结构定义:
struct psa {
char psastuff[540];
struct tcb *psatold;
char filler[4];
struct ascb *psaaold;
};
struct tcb {
struct prb *tcbrb;
char tcbstuff[8];
struct tiot *tcbtio;
};
struct tiot {
char tiocnjob[8];
char tiocpstn[8];
char tiocjstn[8];
};
我需要将其保留为 void 指针,因为稍后我需要在函数中将其转换为 char 和 int 。