Heim > Backend-Entwicklung > C++ > Wie kann ich die Größe eines Arrays bestimmen, das in C als Zeiger übergeben wird?

Wie kann ich die Größe eines Arrays bestimmen, das in C als Zeiger übergeben wird?

Barbara Streisand
Freigeben: 2024-12-04 06:42:12
Original
1006 Leute haben es durchsucht

How Can I Determine the Size of an Array Passed as a Pointer in C  ?

Bestimmen der Array-Größe mit einem Zeiger

In C, wo ein Array in einen Zeiger zerfällt, kann das Abrufen der Array-Größe vom Zeiger eine Herausforderung sein.

Problem

Um die Größe eines als Zeiger übergebenen Arrays zu ermitteln, sind wie beim Zeiger selbst zusätzliche Informationen erforderlich diese Daten nicht enthalten.

Lösung

Um dieses Problem zu lösen, stehen zwei Ansätze zur Verfügung:

  1. Übergabe von Größeninformationen als Argument: Senden Sie die Größe des Arrays als zusätzlichen Parameter an die Funktion. Zum Beispiel:

    func(int* array, size_t arraySize);
    Nach dem Login kopieren
  2. Verwenden der Array-Syntax: Wenn die Größe des Arrays im Voraus bekannt ist, wird durch die Übergabe als Array fester Größe derselbe Effekt erzielt:

    func(int array[5]);
    Nach dem Login kopieren

Erklärung

Die Zeiger-Zerfallsregel Ermöglicht, dass sich Arrays wie Zeiger verhalten. Dies bedeutet jedoch nicht, dass sie von Natur aus Zeiger sind. Sie zerfallen einfach in Zeiger, wenn sie als Funktionsargumente übergeben werden.

Um die Größe des Arrays anhand eines Zeigers zu bestimmen, müssen zusätzliche Größeninformationen bereitgestellt werden. Dies kann erreicht werden, indem die Größe explizit als Argument übergeben wird oder die Array-Syntax verwendet wird, die die Größeninformationen in die Deklaration einbezieht.

Das obige ist der detaillierte Inhalt vonWie kann ich die Größe eines Arrays bestimmen, das in C als Zeiger übergeben wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage