-
Hi,
hast Du schonmal nach "linked list" und/oder "double linked list" gegoogelt?
Da gibts einiges mit unterschiedlichen Tiefgang.
Die beste Erklaerung, die ich kenne, war in der zweiten Haelfte der 80er in einem Chip-Special Pascal(!) :), nur habe ich saemtliche kopierte Zeitungsartikel schon beim letzten Umzug entsorgt.
cu
XlF
-
Hi,
Zitat
Original geschrieben von LJ
Hm, ich seh grad, 'buffer' is gar kein Pointer. Der ist einfach als
definiert. Sollte da das Problem liegen?
Fuer C ist das trotzdem ein Pointer, fuer den halt auch gleich 81 bytes reserveirt werden, und dessen Wert Du nicht veraendern darfst.
Zitat
Funktioniert leider auch nicht. Es tritt immer noch eine Access Violation auf.
Ich weiß hier echt nimmer weiter....
______
Thomas
Alles anzeigen
Du musst entweder
nehmen und dann
strcpy (pers.name, buffer);
oder
pers = (struct pers*)malloc (sizeof(struct pers));
machen.
cu
XlF
-
Hi,
Zitat
Original geschrieben von LJ
Erstmal danke für Deine Hilfe.
...
Die Größe von buffer sollte also ausreichen. Ich steh grad wirklich auf dem Schlauch. Von der Theorie her sollte es ja klappen....:confused:
Ratlose Grüße
Thomas
- wie ist der pointer buffer deklariert/alloziert?
- wie ist die struktur daten instanziiert/alloziert?
cu
XlF
-
Hi,
du hast mehrere moeglichkeiten, die davon abhaengen, wie pers definiert ist:
1.
strcpy (pers->name, buffer);
(der speicherbereich fuer name wird zusammen mit der instantiierung von pers mit vorgegebener laenge allokiert)
2.
pers->name = (char*)malloc (strlen(buffer)+1);
strcpy (pers->name, buffer);
Alles anzeigen
(der speicherbereich muss haendisch in der richtigen laenge alloziert werden)
cu
XlF
-
Hi,
so auf anhieb sehe ich jetzt keinen offensichtlichen Fehler.
Funktioniert es, wenn Du die includierte datei direkt in den quelltext kopierst?
cu
XlF
-
-
Hi,
Zitat
Original geschrieben von stadolf
ist die Methode, die ich für sowas in ANSI-C am ehesten wählen würde. Dynamische Alloziierung sollte man so weit es geht in (unmanaged
) C vermeiden. Es ist besonders für Umsteiger manchmal schwierig, sich an die Vermeidung von new-Operatoren zu gewöhnen (esp. Java-Hansels wie mich...), aber es geht ! Es lebe der Stack.
Ein wenig Beschaeftigung mit dynamischen Speicher schadet ueberhaupt nicht, wenn man C (und auch C++) koennen will. Beim ernsthaften Einsatz der Sprachen kommt man um pointer-jonglieren eh nicht herum (und kann vieles deutlich effizienter machen als mit STL, insbesondere wenn es noetig wird).
Zitat
Diese ganze String-Kopiererei ist übrigens vorsintflutlich (sofern man sich nicht wirklich auf ANSI-C Ebene ohne STL bewegt). Mit der STL wird alles viel einfacher und bleibt zum Glück in den meisten Fällen plattformunabhängig (SunOS / Solaris mal ausgenommen
). Stichwort: strstream, string
Aber es gibt Dinge, wo Du als "unbedarfter" nicht darauf achtest, zB ein konstrukt wie
for (<schleife mit VIELEN durchlaeufen>) {
und dich dann wunderst, warum sich eine quadratische Ordnung fuer die Laufzeit ergibt (vor dem Problem stand ich schonmal).
Wenn Du Dich schonmal mit dem (hundserbaermlichen) String-handling der C-Welt beschaeftigt hast, ist das schnell offensichtlich.
cu
XlF
-
Hi,
nachdem er nichts aussagt, wie er an die Mailadressen gekommen ist, ist es wahrscheinlich noch nicht einmal illegal, die Adressen zu verkaufen. (Erst die Nutzung fuer Spammen ist verboten)
Allerdings verstoesst er (IIRC) gegen die Regeln von Ebay, also wird eine Meldung an Ebay sicherlich erfolg haben.
cu
XlF
-
Hi,
Zitat
Original geschrieben von Engraver
Warum? Ich denke wenn sie es nochmal mit mir versuchen will dann werden sich die alten Fehler nicht wiederholen und wir könnten noch lange zusammen glücklich sein.
P.S.: Danke Basti
Ihr solltet auf jeden Fall Abstand zueinander gewinnen, wenn Ihr jetzt gleich wieder zusammenkommen wollt (insbesondere, wenn der eine Teil nicht will), ist das garantiert zum Scheitern verurteilt.
Habt auf jeden Fall eine Zeit als Single (oder eben auch mit anderen Frauen) und geh Du mit gutem Beispiel voran
.
Woher willst Du beurteilen, dass Dir in der Beziehung zu Deiner Ex nichts abgeht usw, ohne eine andere Lebensform ausprobiert zu haben (sei es jetzt mit einer anderen Partnerin oder alleine, das spielt eine untergeordnete Rolle).
Dass es jetzt am Anfang schwer ist, ist ganz klar, aber das geht vorbei und in ein paar Monaten (oder vielleicht sogar Wochen) kannst Du ueber Deine jetzigen Sorgen nur muede laecheln.
cu
XlF
-
Hi,
Zitat
Original geschrieben von DirkP
Grad eben bin ich auf den Befehl strcat gestoßen, der mir mein Problem gelöst hat.
Geht es auch anders?
strcat soll nicht sicher sein in hinsicht auf Buffer Overflow.
Sicher vor BufferOverflows waerest Du mit dynamischer Allozierung:
char *path = "/wo/hin/auch/immer";
char *name = "wieauch.immer";
/* complete = path + "/" + name + zero-termination */
char *complete = (char*)malloc (strlen(path) + strlen(name) + 2);
Alles anzeigen
was mir noch eingefallen ist:
- anstatt strcpy + 2xstrcat waere in diesem Fall auch sprintf sicher
- fopen ist in ansi so spezifiziert, betriebssystem-unabhaengig mit "/" als verzeichnistrenner zu verarbeiten, man kann also unbesorgt auch unter windows verzeichnisnamen mit "C:/bla/fasel/laber/suelz.txt" benutzen.
cu
XlF