Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

19.07.2010, 19:03

schleife mit zeigern funktioniert nicht

hallo ich hab folgendes problem, aber erstmal der quellcode:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>

using namespace std;

struct zeichen
{
    char c;
    zeichen *next;
};

void generate(zeichen *&pA);
int analyze(zeichen * pA, int & rare);

int main()
{
    zeichen *ancor;
    int anzahl;
    generate(ancor);
    //analyze (ancor, anzahl); 
    return 0;
}

void generate(zeichen *&pA)
{
  zeichen *hp;
  char buffer[256];
  cout << "Geben sie bitte hier ihren Text ein: ";
  cin.getline(buffer,256);
  for(int i=0;i<256;i++)
  {
    if(buffer[i])
    {
    hp=new zeichen;
    hp->c = buffer[i];
    hp->next = pA;
    pA = hp;
    };
  };
  for(hp=pA;hp;hp=hp->next);
};


funktioniert alles prächtig bis: for(hp=pA;hp;hp=hp->next);. Wenn ich die zeile auskommentiere klappts. Als Fehlermeldung bekomm ich einen Segmentation fault.
Bitte um Hilfe. Danke schon mal. :)

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

2

19.07.2010, 19:06

Wie waers, wenn du einen Debugger benutzt?

3

19.07.2010, 19:12

hallo danke für die schnelle antwort.
hab ich versucht nur ich bin damit nicht so richtig klar gekommen.
aber ich gerade dabei das nochmal zu machen. :)

4

19.07.2010, 19:12

hallo danke für die schnelle antwort.
hab ich versucht nur ich bin damit nicht so richtig klar gekommen.
aber ich bin gerade dabei das nochmal zu machen. :)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

19.07.2010, 19:13

Soll ich ihm sagen, dass da ein Pointer nicht korrekt auf NULL initialisiert wurde?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

6

19.07.2010, 19:15

hmmm...danke. Das ist dann wohl hp.

mein Übungsleiter macht das auch immer so nur bei ihm klappts irgendwie.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

7

19.07.2010, 19:48

mein Übungsleiter macht das auch immer so nur bei ihm klappts irgendwie.


Kann es sein, dass er es im globalem Namensraum macht? Wenn ja, dann gibts die Erklärung, warum es bei ihm geht hier.

8

19.07.2010, 19:51

der initialisiert keine Variablen. Weder normale integer noch Zeiger und auch überall. Aber wir programmieren auch mit linux da weiß ich nicht ob die Compiler mehr zulassen.

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

9

19.07.2010, 20:17

Was ist das denn für ein Parameter, den er bei generate übergibt?

C-/C++-Quelltext

1
type *&name
habe ich ja noch nie gesehen o.o..

Referenz auf einen Zeiger?(Adresse des Zeigers selbst?) Ich werd daraus grad nicht schlau. Vielleicht kenn ichs auch und habs nur vergessen...
WIP Website: kevinheese.de

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KeksX« (19.07.2010, 20:22)


drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

19.07.2010, 20:27

C-/C++-Quelltext

1
2
typedef type_p type*;
type_p& name; // nicht probieren nachzudenken was type_p für ein Typ ist, einfach stur Regel anwenden!


Alles klar? :)

Kann durchaus Sinn machen.

Werbeanzeige