Heim > Backend-Entwicklung > C++ > Wie kann ich die Größe eines Arrays ermitteln, wenn ich Zeiger in C verwende?

Wie kann ich die Größe eines Arrays ermitteln, wenn ich Zeiger in C verwende?

Susan Sarandon
Freigeben: 2024-12-03 05:41:10
Original
283 Leute haben es durchsucht

How Can I Get the Size of an Array When Using Pointers in C  ?

Ermitteln Sie die Größe eines Arrays mithilfe eines Zeigers in C

Die Bestimmung der Anzahl der Elemente in einem Array ist bei der Bearbeitung von Arrays von entscheidender Bedeutung. Bei der Arbeit mit Arrays als Zeiger in C wird diese Aufgabe jedoch zu einer Herausforderung.

C erbt die „Array/Zeiger-Äquivalenz“ von C. Arrays können in Zeiger zerfallen, wenn sie als Funktionsargumente übergeben werden, was Code wie den folgenden ermöglicht:

void func(int* ptr);

int array[5];
int* ptr = array; // equivalent to 'ptr = &array[0]'
func(array); // equivalent to 'func(&array[0]);'
Nach dem Login kopieren

In Ihrem Fall übergeben Sie einen Zeiger auf die Array-Elemente anstelle des Arrays selbst. Daher enthält der Zeiger allein keine Größeninformationen.

Um dies zu handhaben, sollten Sie die Größe explizit als zusätzliches Argument übergeben:

static const size_t ArraySize = 5;
int array[ArraySize];
largest(array, ArraySize);
Nach dem Login kopieren

Passen Sie die Funktion an, um den Array-Zeiger zu akzeptieren und seine Größe direkt:

int largest(int* array, size_t size);
Nach dem Login kopieren

Sie können auch syntaktischen Zucker nutzen, um das Array mit einem festen Wert zu definieren Größe:

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

Dies ist jedoch syntaktischer Zucker für eine Array-Zeiger-Deklaration:

void func(int* array);
Nach dem Login kopieren

Wenn Sie das Array selbst und nicht nur einen Zeiger haben, können Sie die Anzahl von ermitteln Elemente mit:

sizeof(array) / sizeof(array[0]);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich die Größe eines Arrays ermitteln, wenn ich Zeiger in C verwende?. 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