PNG * original;
original->readFromFile("in.png");
int width = original->width();
int height = original->height();
Я получаю ошибку сегментации в этом фрагменте кода. Что я делаю не так?Простая ошибка сегментации
PNG * original;
original->readFromFile("in.png");
int width = original->width();
int height = original->height();
Я получаю ошибку сегментации в этом фрагменте кода. Что я делаю не так?Простая ошибка сегментации
Вы являетесь разыгрыванием original
, не назначив ему ничего.
Вы объявили его как PNG *
, но не присвоили экземпляр объекта этому указателю.
Вы должны выделить память, потому что original
это просто указатель.
Как это:
PNG *original = new PNG();
Возможно, вам не нужно использовать указатель
PNG original;
original.readFromFile("in.png");
int width = original.width();
int height = original.height();
Несмотря на то, что, кажется, думают указатели не являются обязательными некоторые новички.
Вы когда-нибудь инициализировали 'PNG * original'? В противном случае разыменование его будет неопределенным. –
-1 'потому что вы действительно могли бы попробовать немного сложнее на этом. По крайней мере, попытайтесь решить свои проблемы, прежде чем обращаться за помощью. –