调用函数b_destroy
时,程序在到达函数末尾之前就崩溃了。该函数如下所示:
void b_destroy(Buffer * const pBD){
#ifdef DEBUG
printf("IN DESTROY\n");
printf("BUFFER ADDRESS %d\n",pBD);
printf("HEAD ADDRESS %d\n",pBD->ca_head);
#endif
if(pBD != NULL || pBD->ca_head != NULL){
if (pBD->ca_head != NULL)
free(pBD->ca_head);
if (pBD != NULL)
free(pBD);
}
#ifdef DEBUG
printf("EXITING DESTROY\n");
#endif
}
我知道指针不是NULL
因为我能够打印出内存位置。任何想法为什么它崩溃?