Arraygröße nach Übergabe an eine Funktion



  • Hallo, ich weis ja das es an sich nicht möglich ist die Größe eines Arrays zu bestimmen, sobald der Zeiger auf die Startadresse übergeben wurde. Sondern das die Größe als zusätzlicher Parameter mit übergeben werden muss.

    Nun meine Frage wie kann ich es denn Abfangen, wenn jemand ein Array übergibt + Größe aber was ist wenn die Größe größer ist als die Anzahl der Elemente.

    Nehmen wir ein Beispiel jemand hat ein Array mit 10 Elementen und gibt aber an das die Größe 11 sei, und wenn die Schleife die das Array durchgeht an der Stelle array[10] ist tritt eine Exception auf bzw. Datenmüll wird ausgelesen. Dann muss es doch einen Fehlerabfang geben?

    In C++ existiert ja Try Catch als Konstrukt wie wäre denn in ANSI C vorzugehen?



  • Bernd1982 schrieb:

    Nehmen wir ein Beispiel jemand hat ein Array mit 10 Elementen und gibt aber an das die Größe 11 sei, und wenn die Schleife die das Array durchgeht an der Stelle array[10] ist tritt eine Exception auf bzw. Datenmüll wird ausgelesen. Dann muss es doch einen Fehlerabfang geben?

    das kannste nicht verhindern. der aufrufer muss immer die richtige grösse und den tatsächlichen beginn des arrays angeben.

    Bernd1982 schrieb:

    In C++ existiert ja Try Catch als Konstrukt wie wäre denn in ANSI C vorzugehen?

    try/catch würde dir bei sowas (falsche arraygrösse, mieser pointer etc.) auch nicht helfen.
    🙂


Anmelden zum Antworten