好吧,所以,这是一个很奇怪的。
我使用 malloc 在 C 中动态分配内存,然后调用在我链接的库中定义的方法。
我遇到的问题是调用该方法后无法释放内存,但是如果我在调用该方法之前释放它就可以了。
代码:
unsigned char* pData = (unsigned char*)malloc(sizeof(unsigned char)*(sLen + 1));
pData[0] = CRITICAL_ERROR; // defined as 2
memcpy(pData+1, pBuf, sLen);
libwebsocket_write(pLws, pData, sLen + 1, LWS_WRITE_BINARY);
free(pData);
当我调用free(pData)
.
我已经尝试针对与我的应用程序相同的操作系统、架构和构建配置(发布)编译库,但它不起作用。
编辑:我只是比较了 libwebsocket_write 调用前后的指针地址,结果是一样的。