Bir Mex Dosyası yazmak üzereyim, bu yüzden C++ kodumu MATLAB'de kullanabilirim.C++/MATLAB Mex ciltleme
Bu kod tekil bir sınıf etrafında (C++) oluşturulur.
Hafızanın kalıcı olması için MxAlloc'un malloc/new isntead özelliğini kullanmam gerektiğini okudum, kullandığım tüm bellekler için bu doğru mu? I.e, benim kullandığım sınıf vektörleri ve vektörleri standart mekanizmaları kullanarak otomatik olarak yeni bellek ayırır.
MxAlloc kullanarak ayrılmış bir sınıftaki bir vektör, belleğini saklamada sorun yaşar?
Harika bir soru - bu sorun belgelerinde çok açıklanmamış. İnsanların her kütüphaneyi MEX-uyumlu hale getirmek için değiştirmeleri gerektiğini düşünerek bütün kütüphaneleri gereksiz yere yeniden yazdığını duydum. –
Teşekkür ederiz! Yeniden yazmak, kütüphane hala geliştirilmekte olduğu için kaçınmak istediğim bir şeydi ve kütüphanenin 2 örneğini, bir c/C++ çalışması için bir tane ve MATLAB prototipleme için bir tane elde etmemi sağladı. –
Ancak aklınızdan çıkarmayın, daha fazla incelik olduğundan emin değilim. Örneğin, eğer Mex dosyası kesintiye uğruyorsa (örneğin bir hata ile), standart C yöntemleri * ile tahsis edilen bellek düzgün bir şekilde tahsis edilemez ... bu noktadaki bilginin bilindiği kişilerden daha fazla girdi takdir edilecektir! –