【发布时间】:2014-11-21 06:44:12
【问题描述】:
好吧,所以,这很奇怪。
我在 C 中使用 malloc 动态分配内存,然后调用在我链接的库中定义的方法。
我遇到的问题是调用该方法后内存无法释放,但如果我在调用该方法之前释放它就可以了。
代码:
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调用前后的指针地址,结果是一样的。
【问题讨论】:
标签: c pointers memory dynamic segments