Ich bin neu in C++ - Programmierung und ich triff dieses Problem in einem Teil meines Codes, wo der Fehler ist manchmal Speicherzuweisung Typ Fehler und manchmal ist es doppelt kostenlos Fehler.Double frei oder Speicherzuweisung Fehler
Fehlercode ist wie folgt.
cv::Mat obstacles = cv::Mat::ones(output.size(), CV_8UC1);
for (int r=0; r<obstacles.rows; ++r) {
int x_cord = cvRound((r - intercet)/slope);
if (x_cord >= 0 && x_cord <= disp_size){
for (int c=0; c<obstacles.cols; ++c) {
int d = output.at<int>(r,c);
if ((d/(256/disp_size)) <= x_cord+5){//<= x_cord+5 && d>= x_cord-5){
obstacles.at<int>(r,c) = 0; //error is in this line
}
}
}
}
Wenn ich obstacles.at<int>(r,c) = 0;
Linie zu entfernen, wird es keine Fehler sein.
Ich verstehe das nicht, weil r
und c
nur die obstacles
Matrix Zeilen- und Spaltennummern sind.
Jede Hilfe in dieser Hinsicht wird sehr geschätzt.
Vielen Dank für die Erklärung, hatte ich Schwierigkeiten zu verstehen, wie es funktioniert. Vielen Dank – Hasi