我一直在試圖理解爲什麼下面的代碼給我的字符串「文件名」壞指針:壞PTR時傳遞的字符串引用作爲參數
Mat imread(const string& filename, int flags) {
// some code returning a Mat object
}
int main() {
string s = "test.jpg";
imread(s, 0);
}
我已經調試一步一步我所得到的只是在輸入imread
之前,字符串沒有問題(我能夠檢查它的每個元素),但之後不可能這樣做,調試器指責Bad Ptr。我不確定我明白爲什麼會發生這種情況。
就這麼你知道,我正在使用Visual Studio 2008和OpenCV 2.2。
編輯:我確實已經忘了說一件重要的事情,那對我來說很重要,它解決了這個問題:我在.cu文件中編寫這段代碼,因此在第一個實例中由nvcc編譯。
「給我一個糟糕的指針」?你發佈的代碼是好的(除了未聲明的「Mat」和缺少返回語句),所以這個問題(無論你是否真的說了)在其他地方。你能發佈一個最小的完整的測試用例來證明這個問題嗎?或者至少有一些來自調試器的輸出? – 2011-06-08 10:11:09
您的應用程序是多線程的嗎? – Nawaz 2011-06-08 10:12:50
opencv已經有一個'imread'函數,你爲什麼試圖重新定義它? – etarion 2011-06-08 10:59:57