Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Pointer Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.08.2007, 23:33 Uhr
~testo
Gast


Hallo,

ich verstehe es einfach nicht mehr. Es ist ein triviales Problem bei dem ich nicht mehr durchblicke.

C++:
int * a = NULL;

my_function(a);
//auf len zugreifen löst segfault aus
std::cout << a->lines->len << std::endl;

//....
void Class::my_function(int *a)
{
    my_function2(a);
}

//...
void Class::my_function2(int *a)
{
      //Hier mache ich was mim pointer also greife
    //z.B auf Daten zu und verändere:
    a->lines->len = 4;
}



also irgendwas ist da falsch weil ich kann in der ausgangsfunktion als da wo my_function() aufgerufen wird nicht ohne einen seg-fault auf len zugreifen.

Wenn ich statt dieser variante folgendes mache gehts - ist das so üblich wie ich es mache folgt?:


C++:
int * a = NULL;

my_function(a);
//auf len zugreifen geht
std::cout << a->lines->len << std::endl;

//....
void Class::my_function(int *&a)
{
    my_function2(a);
}

//...
void Class::my_function2(int *&a)
{
      //Hier mache ich was mim pointer also greife
    //z.B auf Daten zu und verändere:
    a->lines->len = 4;
}



oder ist das hier besser?

C++:
int * a = NULL;

my_function(&a);
//auf len zugreifen geht
std::cout << a->lines->len << std::endl;

//....
void Class::my_function(int **a)
{
    my_function2(&a);
}

//...
void Class::my_function2(int **a)
{
      //Hier mache ich was mim pointer also greife
    //z.B auf Daten zu und verändere:
    (*a)->lines->len = 4;
}



danke für eure Hilfe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.08.2007, 00:15 Uhr
0xdeadbeef
Gott
(Operator)


Aaaalso, zum einen hat ein int keinen Member lines, und dementsprechend gibt es auch a->lines->len nicht. Zum anderen zeigt a auf NULL, und NULL zu dereferenzieren erzeugt natürlich einen segfault.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.08.2007, 00:45 Uhr
~testo
Gast


das ist nur beispielcode, ich habe natürlich nicht auf NULL initialisiert, der pointer zeigt schon auf was was existent ist.
evtl. kann mir jetzt noch jemand helfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.08.2007, 00:46 Uhr
~testo
Gast


ach und das mit der variablen len ist schon ok - ich habe halt nur ein beispiel genommen, ersetzt einfach das int durch eine von mir deklarierte Klasse....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: