2 strings aus Funktion übergeben



  • Da hast du natürlich recht, ich verwende es trotzdem nur gerne, weil ich beim erneuten durchsehen gleich erkenne ob ich einer Funktion wirklich einen Pointer übergebe oder ein Array... is ne Angewohnheit 😉



  • Wutz schrieb:

    char *meinString1 = malloc(strlen(wertausDB1)+1); strcpy(meinString1,wertausDB1);
    char *meinString2 = malloc(strlen(wertausDB2)+1); strcpy(meinString2,wertausDB2);
    

    Schon mal was von strdup (http://linux.die.net/man/3/strdup) gehört?

    mfg Martin



  • Schon. Und hast du schon mal was von ANSI C gehört?
    Scheinbar nicht, denn strdup ist weder C89 noch C99 und somit kein ANSI C und gehört nicht in dieses Forum.



  • Wutz schrieb:

    Schon. Und hast du schon mal was von ANSI C gehört?
    Scheinbar nicht, denn strdup ist weder C89 noch C99 und somit kein ANSI C und gehört nicht in dieses Forum.

    Hallo Wutz,

    entschuldigung. Du hast recht, ich war davon überzeugt, daß es im Standard ist.

    mfg Martin



  • likegliss schrieb:

    Da hast du natürlich recht, ich verwende es trotzdem nur gerne, weil ich beim erneuten durchsehen gleich erkenne ob ich einer Funktion wirklich einen Pointer übergebe oder ein Array... is ne Angewohnheit 😉

    Hmm. Ich dachte immer, Arrays gibt es nur zur Compilezeit... Wenn das so ist, wie soll man ein Array dann zur Laufzeit übergeben?
    🙂



  • Ich dachte dabei mehr an Themen wie Fehlersuche und Co als an Laufzeiteigenschaften...



  • Vielen Dank für die zahlreichen wirklich guten und hilfreichen Beiträge. Wenn ich eine entsprechende Lösung programmiert habe werde ich diese definitif hier uppen - dies kann auf Grund zahlreicher Verpflichtungen aber u.U. noch ein paar wochen dauern 😞

    Hmm. Ich dachte immer, Arrays gibt es nur zur Compilezeit... Wenn das so ist, wie soll man ein Array dann zur Laufzeit übergeben?

    Zum Unterschied zwischen Arrays und Pointern - das könnte Dir u.U. weiterhelfen:
    http://www.dclc-faq.de/kap2.htm



  • jAIk schrieb:

    Zum Unterschied zwischen Arrays und Pointern - das könnte Dir u.U. weiterhelfen:
    http://www.dclc-faq.de/kap2.htm

    Hmm.

    http://www.dclc-faq.de/kap2.htm schrieb:

    Es ist wichtig zu begreifen, dass ein Bezug wie x[3] zu unterschiedlichem Maschinencode führt, je nach dem, ob x ein Array oder ein Zeiger ist.

    _matze schrieb:

    Das brauchst du noch nicht mal (array-to-pointer decay).

    Wie jetzt?
    🙂



  • Wenn du mal genau nachliest was array-to-pointer decay bedeutet dann wird dir vll klar, dass die erste aussage die zweite nicht ausschließt oder umgekehrt. Oder auf was genau willst du hinaus?



  • likegliss schrieb:

    Oder auf was genau willst du hinaus?

    Darauf, dass man x[3] ganz ohne Kenntnis des Typs von x übersetzen kann, wenn man Arrays als Zeiger auf ihren Anfang auswertet.
    🙂


Anmelden zum Antworten