000
18.03.2006, 12:08 Uhr
Karldin Shinowa
Professional Noob
|
also sizeof gibt ja die größe in Bytes an:
daraus folgt
C++: |
int Feld[]={5,6,7,8,9}; sizeof(Feld);//5*4=20
|
daher um die Elementeanzahl zu wissen:
C++: |
sizeof(Feld)/sizeof(Feld[0])//20/4=5
|
und jetzt das Problem. Ich will per Funktion ein Array ausgeben lassen:
C++: |
#include<iostream> #include<stdio.h>
void Ausgabe(int* Feld);
int main() { int Feld[]={5,6,7,8,9}; Ausgabe(Feld); getchar(); }
void Ausgabe(int *Feld) { int Anzahl=sizeof(Feld)/sizeof(Feld[0]);//**** for(int i=0; i<Anzahl;i++) { cout<<Feld[i]; cout<<endl; } }
|
so er gibt jetzt aber nur 5 aus also nur das 1. Element..... wenn ich bei **** aber nur
C++: |
int Anzahl=sizeof(Feld);
|
schreibe funktionierts. Warum???? sizeof(Feld) is doch 20 weil 5 Elemente zu je 4 Bytes.... -- Ich will die Welt verbessern, doch Gott gibt mir nicht den Code. Dieser Post wurde am 18.03.2006 um 12:09 Uhr von Karldin Shinowa editiert. |