如题,结构体指针作为函数参数时,结构体指针指向的必须是全局或者是static的吗?为什么定义的局部结构体变量,在进行参数传递的时候会错呢?然后定义成static就没有问题,费解啊!
dp_mian.h
typedef struct RXPKG_STRUCT
{
U8 recvbuf[MAX_RECV_BUFLEN];
U16 recvcnt;
}RXPKGINFO;
dp_main.c
extern bool DPEntry(RXPKGINFO *rxinfo);
void main(void)
{
RXPKGINFO reinfo;
RXPKGINFO *reinfoptr;
reinfoptr = &reinfo;
while(1)
{
num = fread(re_buffer, 1, 1024, rs485_dev);
printf("num = %d\n", num);
if(num > 0 )
{
reinfoptr->recvcnt = num;
for(int i=0; i<num; i++)
{
reinfoptr->recvbuf[i] = re_buffer[i];
printf(" 0x%x",re_buffer[i]);
}
DPEntry(reinfoptr);
}
}
bool DPEntry(RXPKGINFO *rxinfo)
{
int i;
for(i=0; i<rxinfo->recvcnt; i++)
{
printf("rxinfo->recvbuf[%d] = 0x%x\n",i,rxinfo->recvbuf[i]);
}
}
------解决思路----------------------
出什么错误?堆栈出错?