Beiträge von XlF42

    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

    Code
    char buffer[81];


    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.



    Du musst entweder

    Code
    struct daten pers;


    nehmen und dann

    Code
    strcpy (pers.name, buffer);


    oder

    Code
    struct daten *pers;
    ...
    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.

    Code
    typedef struct pers
    {
    ....
    char name[80];
    ....
    } pers;
    ....
    strcpy (pers->name, buffer);


    (der speicherbereich fuer name wird zusammen mit der instantiierung von pers mit vorgegebener laenge allokiert)


    2.


    (der speicherbereich muss haendisch in der richtigen laenge alloziert werden)


    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

    Code
    {
    string str;
    ...
    for (<schleife mit VIELEN durchlaeufen>) {
    str += <irgendwas>;
    }
    }


    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:


    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