YuO様とその他の方々、ありがとうございます。
YuO様が書かれました:
==========
少なくとも標準C++にそのような機構はありません。
そもそも,最初に書いてある例外は誰が出した例外ですか。
Matクラスでではなく,free関数が送出した例外ではないでしょうか。
==========
非常に建設的なご意見有難うございます。
もう少し説明させていただきます。
OpencvのMATに public fieldとして uchar* dataが定義されてあります。
これはMat instanceを生成する時にOpencvのほうより自動的にメモリ空間を確保されます。 簡単な構造(uchar)なので freeか、deleteで解放できるはずと思って、解放しようとしたら、freeもdeleteも delete[] も三つの解放方法で同じ実行例外が発生してしまいました。
例外発生メッセージ「XXX.exeによってブレークポイントが発生しました。」
場所:「delete_scalar.cpp」 中の下記関数:
コード:
void _CRTDECL operator delete(void* const block) noexcept
{
#ifdef _DEBUG
_free_dbg(block, _UNKNOWN_BLOCK);
#else
free(block);
#endif
}
============================
free(...)の場合は実行エラーメッセージ同じですが、上記関数に飛びません。
あらゆるアイディア、ご教授に感謝します。
}
[/code]
Mat自身にはrelease()というメソッドがあり、これで恐らくdetaが指しているメモリを解放してくれるだろうと思います。