iPhoneアプリケーションでaclibを使用しています。c libは、私がアクセスできない誰かによって書かれています。
ただし、オブジェクト0xa6000dが解放されているが、割り当てられていないというエラーが発生します。デバッグ変数のスクリーンショットはこちらです。
struct GtsMsgは、次のように定義されます。
struct msg {
int offset;
int dataLength;
u8* data;
cBool expandable;
cBool owned;
u8* mid2key;
};
#define GtsMsg struct msg
void freeMessageData(GtsMsg* msg) {
if (msg == NULL) return;
if (msg->owned) {
if (msg->data != NULL) {
free(msg->data);
}
}
free(msg->mid2key);
memset(msg, 0, sizeof(GtsMsg));
}
malloc_error_breakのブレークポイントは、行free(msg-> data)です。
(msg-> data!= NULL)かどうかのチェックを追加しましたが、機能しませんでした。msg-> dataまたはmsgのメモリが割り当てられているかどうかを確認する方法は何ですか?
* data =(u8)'\ 0'に何か怪しいものがあると思いますか?
前もって感謝します!