free(buf)报错。(buf位置移动导致指针指向的位置变动了)

free(buf)报错。(buf位置移动导致指针指向的位置变动了)free(buf)报错。(buf位置移动导致指针指向的位置变动了)

原因:由于for循环的pFrameBuf+=nHorz这一行,使得最后,这个指针指到了最后位置,所以这个指针指向的地点变了,因而出现错误。所以,必须要将这个指针回到它的起始位置!

方法1:用pFrameBuf -=nBufSize;使得回到起始位置即可。

free(buf)报错。(buf位置移动导致指针指向的位置变动了)

 

方法2:用一个buf变量pbuf先开辟指定的内存,然后再赋值给这个pFrameBuf。之后只需要释放指针变量pbuf即可,而不用管这个pFrameBuf。