hallo ich lese eine datei ein, klappt soweit hab definiert: char zeile[anz][puffer]. das problem ist wenn ich anz auf 100000 setze stürzt das programm ab, weiss einer abhilfe. ist speicherreservierung begrenzt danke schon ma
Gast schrieb: > hallo > ich lese eine datei ein, klappt soweit > hab definiert: char zeile[anz][puffer]. das problem ist wenn ich anz auf > 100000 setze stürzt das programm ab, weiss einer abhilfe. Ja. Setz es nicht auf 100000, sondern beschäftige dich damit, wie man Speicher zur Laufzeit reserviert und verwaltet. Kann natürlich auch sein, dass du einen anderen Fehler im nicht gezeigten Programm hast. > ist > speicherreservierung begrenzt Aus C Sicht nicht. Aber viele Compiler bzw. deren Runtimes haben ein oberes Limit, wie gross eine einzelne Allokierung maximal sein darf.
Da Du nicht erwähnst, auf was für einem System mit was für einem Compiler Du Dein "Programm" erstellst, kann ich nur auf die alleswissende Glaskugel verweisen.
ich benutze als Entwicklungsumgebung DEV-C++ mit dem dazugehörigen Compiler, ich vermute jetzt einfach mal das das der gcc ist. will das aber jetzt erst nich dynamich machen, recht viel aufwand unter C
Gast schrieb: > ach, einen anderen fehler gibt es nicht weil, es mit 1000 zeilen > funktioniert. Na dann :-)
Gast schrieb:
> aber jetzt erst nich dynamich machen, recht viel aufwand unter C
Wer Omletts machen will, muss Eier zerschlagen.
Wenn du es nicht besser machen willst, wirst du mit 1000 Zeilen oder dem Absturz leben müssen. Erstens: wenn es dir unter C zu mühsam ist (was ich verstehen kann), gibt es auch noch C++, da ist es viel leichter. Zweitens gab es hier erst vor ein paar Tagen schon mal das Thema; das weiß ich zufällig noch, weil ich da ein Beispielprogramm dafür gemacht habe. Suchen kann auch mühsam sein, deshalb lieber gleich den Link: Beitrag "Daten aus Datei einlesen und zeilenweise abespeichern"
Sollte das Riesen-Array als automatische Variable * deklariert werden, so ist der Programmabsturz kein Wunder, da der Stack, der dem Programm standardäßig zur Verfügung steht, dafür nicht ausreicht. *) was das ist und bedeutet wird in Deinem C-Handbuch beschrieben. Lesen!
ja der c++ code gefällt mir besser, nur kann ich noch kein c++ ich hätte da ne frage, bei dem c++ code wird das array under ner liste gespeichert, nun frage ich mich wie kann ich da z.B auf z.B die 5 zeile zugreifen, einfach mit liste(0) oder gibts da was wie liste.element(0) oder so ähnlich
Eine Liste ist eine Liste, und der Zugriff auf ein willkürliches Element darin anhand der Position ist ineffizient. Stattdessen macht es Sinn, mit Iteratoren die Liste entlangzulaufen und die Daten sequentiell zu verarbeiten. Braucht man einen solchen direkten Zugriff über Index, ist std::list die falsche Wahl (oder der direkte Zugriif ist die falsche Wahl, je nachdem). Dann würde man statt std::list eher std::vector nehmen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.