Arraygrösse

bobtut

Grünschnabel
Ich habe eine Frage. Gibt es in C eine funktion, die Grösse eines eindimensionales Arrays berechnet, wenn ja kann mir jemand sie verraten?

Danke
 
Die kann es nicht geben - sie ist nirgendwo gespeichert und es gibt kein dediziertes Ende eines Arrays. Ein Array ist einfach ein zusammenhängendes Stück Speicher von dem man den Anfang kennt. Daher ja auch die Buffer-Overflow-Probleme in vielen Programmen.
Man muss die Größe explizit für sich speichern wenn man den Speicher dynamisch oder statisch (da ist es allerdings kein Problem) anfordert.
 
Hallo!

Meinst du vielleicht sowas?

Code:
#include <iostream>
#include <stdlib.h>

using namespace std;

int main(int argc, char *argv[])
{
  const char cA[] ="Hello world!";
  int iA[5];
  printf("cA enthaelt %lu Elemente! \n", (unsigned int)
                     sizeof(cA)); // 13 Elemente wegen \0 am Schluss
  printf("cA enthaelt %lu Elemente! \n", (unsigned int)
                     sizeof(iA)/sizeof(int)); //5 Elemente
  system("PAUSE");	
  return 0;
}

Gruß Tom
 
Thomas - du schummelst. Das waren C-Strings deren Länge du untersucht hast. Keine Arrays mit beliebigen Daten. ;)
 
Zurück