Speicherzugriffsfehler

NoPanic2007

Grünschnabel
Kann jemand erklären, warum das einen Speicherzugriffsfehler gibt!?

#include <iostream>

class cell {

public :
cell* input();
private :
int index;

};

typedef cell* cellPtr;
static cellPtr list;

cell* cell::input( ) { list->index=2000; return ( list ); }


int main() {

cellPtr* cellPtrPtr;
cellPtrPtr = new cellPtr[3];
cell* myPtr;
cell mycell;

myPtr = &mycell;
cellPtrPtr[0] = myPtr->input();
delete [] cellPtrPtr;
}

Merci.
 
Hallo!


Bei dem Abschnitt "list->index = 2000" scheint was schief zu laufen. Schau dir das mal genauer an. Ich versuch mal etwas genaueres heraus zu bekommen.


Gruß
Buba
 
Hallo!


Also wenn du aus "list->index = 2000;" ein "list->index; index = 2000" machst läuft er ohne Probleme durch!


Gruß
Buba
 
mmmh, okay, das läuft durch! aber er schmeißt die Warnung:

In member function ‘cell* cell::input()’:
func.cc:17: warning: statement has no effect

also, passiert eigentlich nix...oder?
 
Hmmm...

Da hast du recht - es scheint eigentlich keinerlei Auswirkung zu haben. Wahrscheinlich weil diese Variable (cellPtr) nicht zu der Klasse gehört. Leider bin ich hier mit meinem Latein am Ende.



Gruß
Buba

P.S.: Solte ich noch eine Lösung finden werde ich sie posten!
 
Hi.

Das Problem ist, das du keinen Speicher für die Variable "list" alloziert hast, da du die Variable gar nicht initialisierst.

Gruß
 
Zurück