简体   繁体   English

简单分段故障程序

[英]Simple Segmentation Fault Proglem

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

I'm getting a segmentation fault in this bit of code.我在这段代码中遇到了分段错误。 What am I doing wrong?我究竟做错了什么?

You must allocate memory, because original it's just a pointer.您必须分配内存,因为original它只是一个指针。

Like this:像这样:

PNG *original = new PNG();

You are dereferencing original without first having assigned anything to it.您在没有首先为其分配任何内容的情况下取消引用original

You declared it as a PNG * but did not assign an object instance to that pointer.您将其声明为PNG *但没有将对象实例分配给该指针。

Perhaps you don't need to use a pointer也许你不需要使用指针

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

Despite what some newbies seem to think pointers are not obligatory.尽管有些新手似乎认为指针不是强制性的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM