strcpy mit param char* dest und return char*



  • virtuell Realisticer schrieb:

    finix schrieb:

    "No return value is reserved to indicate an error."

    Ja und? Ist das nun 0? Oder wird ein Zeiger auf eine Birne zurueckgegeben
    oder wie schaut das aus?

    Eben nicht. Genau das will dir die Dokumentation sagen.



  • netrobot schrieb:

    Der zurueckgegebene Zeiger sollte auf strDestination zeigen.

    ich habe schon den Zeiger auf strDest, wozu noch der zurückgeg. Zeiger?

    Damit strcpy praktisch gesehen ein Expression ist, kein Statement.



  • finix schrieb:

    virtuell Realisticer schrieb:

    finix schrieb:

    "No return value is reserved to indicate an error."

    Ja und? Ist das nun 0? Oder wird ein Zeiger auf eine Birne zurueckgegeben
    oder wie schaut das aus?

    Eben nicht. Genau das will dir die Dokumentation sagen.

    Ist ret != dst?

    gruss
    v R



  • virtuell Realisticer schrieb:

    Ist ret != dst?

    Was will uns diese Frage sagen? Nein, ret ist immer dst. Was genau verstehst Du denn nicht an der bereits mehrmals getroffenen Aussage: "Es gibt keine Fehler, die strcpy melden könnte, also gibt es auch keinen Rückgabewert, der einen Fehler anzeigen müsste."



  • No return value is reserved to indicate an error.

    versteh ich eher so, dass die implementierung 0 zurück gibt, wenn nen fehler auftritt. entspricht allerdings nicht der standardimplementierung von strcpy, deren rückgabewert immer *dest ist.

    sinn machen kann das allerdings schon. z.b. wenn aus irgendeinem grund kein zugriff auf *dest stattfinden kann.



  • "No return value" ist ja nicht möglich, wenn der Funktionstyp nicht void ist, selbst 0 wäre ja ein Rückgabewert... 😉

    Grüße,

    Martin



  • es wird allerdings ein *char zurückgegeben. d.h. der value ist ein array von chars. ein leeres array wäre eine gültige adresse auf einen speicherbereich, in dem 0 steht. "kein wert" ist keine adresse, also 0 😉



  • Sagt mal ist das hier eine sprachliche Diskussion oder eine fachliche? Der Satz sagt eindeutig, dass keinen Returnwert gibt, der einen Fehler anzeigt. Er sagt nicht, dass es keinen Return-Wert gibt, er sagt nicht, dass im Fehlerfall 0 zurückgegeben wird.

    Wenn es einfach daran liegt, dass Euer Englisch nicht so gut ist, nachvollziehbar. Aber vertraut doch einfach mal den paar Leuten die diesen Satz hier mehrmals auseinandergebröselt und erklärt haben.

    "Es gibt keinen Returnwert, der einen Fehler anzeigt."



  • Ich hab reserved ueberlesen

    gruss
    v R



  • LordJaxom schrieb:

    Sagt mal ist das hier eine sprachliche Diskussion oder eine fachliche? Der Satz sagt eindeutig, dass keinen Returnwert gibt, der einen Fehler anzeigt. Er sagt nicht, dass es keinen Return-Wert gibt, er sagt nicht, dass im Fehlerfall 0 zurückgegeben wird.

    Wenn es einfach daran liegt, dass Euer Englisch nicht so gut ist, nachvollziehbar. Aber vertraut doch einfach mal den paar Leuten die diesen Satz hier mehrmals auseinandergebröselt und erklärt haben.

    "Es gibt keinen Returnwert, der einen Fehler anzeigt."

    das sagt er nicht eindeutig.

    No return value is reserved to indicate an error.

    eine korrekte übersetzung lautet:
    Kein Rückgabewert ist reserviert, um einen Fehler anzuzeigen.

    dass die von dir genannte übersetzung auch richtig sein kann stell ich gar nicht in abrede. aber in dem fall hier ist der satz allein nicht eindeutig.



  • thordk schrieb:

    eine korrekte übersetzung lautet:
    Kein Rückgabewert ist reserviert, um einen Fehler anzuzeigen.

    Irgendwie schaffe ich es dennoch nicht, diesen Satz (selbst auf Deutsch) anders zu interpretieren, als dass es keinen Rückgabewert gibt, der einen Fehler anzeigt 😉



  • thordk schrieb:

    No return value is reserved to indicate an error.

    eine korrekte übersetzung lautet:
    Kein Rückgabewert ist reserviert, um einen Fehler anzuzeigen.

    Und was schließt du daraus? if (error) return (char*)rand(); ?


Anmelden zum Antworten