mrgloom 242 Жалоба Опубликовано September 6, 2012 int SampleImgHeight = 1000; int SampleImgWidth = 1000; Mat img= Mat::zeros( Size( SampleImgWidth, SampleImgHeight ), CV_8UC3 ); Access violation reading location почему нельзя так делать в самом начале программы? т.е. там где предположительно глобальные переменные. а если так int SampleImgHeight = 1000; int SampleImgWidth = 1000; Mat img; а потом в теле функции img= Mat::zeros( Size( SampleImgWidth, SampleImgHeight ), CV_8UC3 ); то все работает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано September 7, 2012 Глобальные переменные вообще зло, удали их лучше. Если говорить о падении, то я бы посмотрел в отладчике, что не инициализируется и где конкретно падает. Может, zeros вообще не вызывается? Думаю, так и есть, лень искать параграф стандарта. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ArtemBogatov 2 Жалоба Опубликовано September 7, 2012 int SampleImgHeight = 1000; int SampleImgWidth = 1000; Mat img= Mat::zeros( Size( SampleImgWidth, SampleImgHeight ), CV_8UC3 ); Access violation reading location почему нельзя так делать в самом начале программы? т.е. там где предположительно глобальные переменные. Такая ошибка могла возникнуть если, например, у Вас есть ещё одна статическая переменная в другом файле, зависящая от этой, т.к. по стандарту инициализация должна произойти до их использования, но порядок инициализации не определён. Если у Вас причина в этом, а статические переменные всё равно хочется использовать, есть пара вариантов как это сделать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах