函數(shù)參數(shù)為字符串類型時,默認值設(shè)為NULL會報錯
一、bug描述
點擊查看代碼
cv::Mat undistort_image_halcon_cv2(cv::Mat& src, std::string calib_param_file = NULL);
二、原因分析
原因時類型不匹配,使用NULL(本質(zhì)是#define NULL 0)時,編譯器會嘗試使用空指針初始化std::string對象
然而std::string類型的構(gòu)造函數(shù)在接收const char *類型時,要求指針必須指向C風格字符串(包括空字符'\0',但NULL指針不指向任何有效的字符串內(nèi)存,當使用std::String的構(gòu)造函數(shù)訪問時,自然會出發(fā)內(nèi)存訪問異常
三、解決方法
將默認值設(shè)成空字符""

浙公網(wǎng)安備 33010602011771號