这是一个非常常见的错误,常见的原因是访问了非法的指针或者意外改变了内存,从而导致之后的访问出现这个错误。
fifo_t* fifo = (fifo_t*)malloc(sizeof(fifo));
这是问题出现的位置。
fifo_t* fifo = (fifo_t*)malloc(sizeof(fifo_t));
这是正确的语句
两者只是不小心将fifo_t错写成了fifo,这种手误非常常见并且不易发觉。所以如果你出现了0xC0000005的错误,又一筹莫展的时候,试试找找所有的malloc和calloc,或许你会和我一样幸运。