sizeof und zeiger
-
guten abend,
func(int *array)
{
printf("%d",sizeof(array));
}int array[10];
func(array);klar das ich in der funktion immer 4 als ergebnis bekomme da integer 4bytes sind und der zeiger array so aufs erste element zeigt aber wie bekomme ich jetzt statt ner 4 meine gesuchten 40?
-
Garnicht. Du musst die größe in einem weitern Parameter mitgeben.
(alternativ könntest Du aber auch vector verwenden:#include <vector> #include <iostream> using namespace std; void foo(const vector<int> & vec) { cout<<sizeof(int) * vec.size(); } int main() { vector<int> test; test.push_back(1); test.push_back(2); test.push_back(3); test.push_back(4); foo(test); }
-
Original erstellt von <muh>:
**
klar das ich in der funktion immer 4 als ergebnis bekomme da integer 4bytes sind und der zeiger array so aufs erste element zeigt aber wie bekomme ich jetzt statt ner 4 meine gesuchten 40?**noch etwas: du bekommst hier nicht 4 raus, weil das die Größe eines Integers ist, sondern weil das die Größe eines Zeigers auf deinem System ist. Änderst du int in short bekommst du trotzdem 4 raus.
[ Dieser Beitrag wurde am 22.04.2003 um 20:33 Uhr von niox editiert. ]