char array in Liste
-
Hallo!
Hoffe auf eure Hilfe. Habe mich schon dumm und dämlich gesucht, aber alles was ich finde ist, man soll strcpy nutzen, was ich aber bei dieser Aufgabe nicht darf.
Also hier ein kleiner Teil des codes, wo mein problem ist:
#include <iostream> #include <fstream> struct elem { char aArr[20]; char bArr[20]; elem *next; }; int main(){ ifstream read; ofstream write; string row; while(getline(read, row)){ elem * newlist = NULL; ... for(int i=0; row[i] != ' '; i++){ // ' ' <-- weil es aus 2 wörtern besteht newlist->aArr[i] = row[i]; //hier krieg ich einen fehle " Program received signal SIGSEGV, Segmentation fault." } ... } }
Ist das was ich da vorhabe überhaupt möglich ohne andere bibliotheken zu nutzen auser die 2 die ich angegeben habe?
-
Natürlich knallts, wenn du nullptr dereferenzierst. Alles weitere wäre geraten, denn dein Code ist lückenhafter Salat und kein minimales kompilierbares Beispiel
-
Warum benutzt du std::string zum Lesen, in der Liste aber Arrays?
#include != Bibliothek.
Es fehlt das Include für string.
Was steht in ...
Wird auch mal ein Listenelement beschafft?
Sind die Wörter auch nicht zu lang?
Debugger benutzen!
-
HarteWare schrieb:
Natürlich knallts, wenn du nullptr dereferenzierst. Alles weitere wäre geraten, denn dein Code ist lückenhafter Salat und kein minimales kompilierbares Beispiel
Wegen dem code, hier wäre eins das sich dann kompiliert:
#include <iostream> using namespace std; struct elem { char aArr[20]; char bArr[20]; elem *next; }; int main(){ string row = "wort wort"; elem * newlist = NULL; for(int i=0; row[i] != ' '; i++){ // ' ' <-- weil es aus 2 wörtern besteht newlist->aArr[i] = row[i]; //hier krieg ich einen fehle " Program received signal SIGSEGV, Segmentation fault." } }
Soll das problem in "elem * newlist = NULL;" liegen?
-
Wenn du schon mit Pointern arbeiten willst oder musst, dann musst du dir dazu auch entsprechendes Lehrmatetial durchlesen, am besten natürlich ein Buch.
Was der Pfeil-Operator auf einem Pointer beispielsweise macht muss dir einfach bekannten und bewusst sein.
-
manni66 schrieb:
Warum benutzt du std::string zum Lesen, in der Liste aber Arrays?
#include != Bibliothek.
Es fehlt das Include für string.
Was steht in ...
Wird auch mal ein Listenelement beschafft?
Sind die Wörter auch nicht zu lang?
Debugger benutzen!Das mit dem string lesen, ist eigentlich auch egal, habe auch so gemacht, das ich char by char lese, das jedoch auch nicht ging wie ich möchte mit dem eintragen in listen array. Zu lang mit sicherheit nicht, das geht schon bei einem buchstaben nicht.
Debugger habe ich benutzt, fehler kommt ja gleich beim ersten Buchstaben.
-
Na der Zeiger zeigt doch auf null? Das was du da tust ist ziemlich entfernt von C++, eher C.
-
Danke, habe meinen dummen fehler verstanden