2015-09-04 6 views
-4
PNG * original; 
    original->readFromFile("in.png"); 
    int width = original->width(); 
    int height = original->height(); 

Я получаю ошибку сегментации в этом фрагменте кода. Что я делаю не так?Простая ошибка сегментации

+0

Вы когда-нибудь инициализировали 'PNG * original'? В противном случае разыменование его будет неопределенным. –

+0

-1 'потому что вы действительно могли бы попробовать немного сложнее на этом. По крайней мере, попытайтесь решить свои проблемы, прежде чем обращаться за помощью. –

ответ

1

Вы являетесь разыгрыванием original, не назначив ему ничего.

Вы объявили его как PNG *, но не присвоили экземпляр объекта этому указателю.

2

Вы должны выделить память, потому что original это просто указатель.

Как это:

PNG *original = new PNG(); 
0

Возможно, вам не нужно использовать указатель

PNG original; 
original.readFromFile("in.png"); 
int width = original.width(); 
int height = original.height(); 

Несмотря на то, что, кажется, думают указатели не являются обязательными некоторые новички.