Please help me back on the track!
nobody
jcmunt at post.cz
Fri May 12 23:26:59 BST 2000
Peter Thorstenson wrote:
>
> Hi!
>
> I don't know if this is the prober place to post this.
> I'm learning C++ and have been using kdevelop since 2 months.
> My application for KDE 1.X is getting along over my expectations. That means
> good.
> However, five days ago I ran in to a problem that does not let me continue.
> When the proble occured I ran kdevelop 1.0 so I changed it to 1.2beta2
> but with no change.
> To me it seems like a basic problem probably due to lak of knowelage from my
> side.
> Any help is appreciated.
>
> Problem description:
> A added a new class to my project: "mp3_header". In this class I declare a
> variable "cat" as public. To me this means that any other class should be
> able to set or alter the value of this variable. In this function it should
> be enough to declare it as private I think.
> BUT if I try to alter the value from a menu-slott bu calling "setCat()" as
> follows, the program
> quits directly with error:
>
> Program received SIGSEGV, Segmentation fault.
>
> In the prog.h file:
> #include <mp3_header.h>
> :
> :
> private:
> mp3_header *header;
>
> In the prog.cpp file:
> //The command I put cleanly in a menu-slot
> header->setCat();
>
> The functions I make in this class works fine. As long as I do not use any
> variables declared outside the functions. Well it's not only this class it's
> any class I add that works like this.
> The program compiles fine. No complaints about missing declarations or
> anything.
> To me it seems as the declaration of the variable doesn't work. I must be
> missing something very important!
>
> I've been struggling for five days now trying to solve it but without luck.
> PLEASE help me back on the track!
>
> Regards,
>
> Peter Torstenson
> Rio de Janeiro, 35 degrees Celcius....
>
> OK here's the info:
>
> The class I added:
> **** mp3_header.h *******************
> #ifndef MP3_HEADER_H
> #define MP3_HEADER_H
>
> class mp3_header {
> public:
> mp3_header();
> ~mp3_header();
> int cat;
> void setCat();
> };
>
> #endif
>
> **** mp3_header.cpp ******************
> #include "mp3_header.h"
> #include <iostream.h>
>
> mp3_header::mp3_header(){
> }
> mp3_header::~mp3_header(){
> }
> void mp3_header::setCat(){
> cat=2; //This is where it stops!!
> // Saying: Program received SIGSEGV, Segmentation fault.
>
> }
> ****************************************
> Debug info:
>
> MEMORY:
> 0x0: Cannot access memory at address 0x0.
^^^
Do you allocate memory for this variable (via new)? The variable *header
is declared as a pointer. Use something as:
header = new mp3_header();
header->setCat();
--
Jarda
What do you want to hack today?
More information about the KDevelop
mailing list