Bluejie
Gebruiker
- Lid geworden
- 10 sep 2007
- Berichten
- 86
Hallo,
Ik ben net begonnen met C++ en loop ergens tegenaan. Ik ben een functie aan het maken dat de lengte van een array geeft. Nou vond ik het volgende:
Dit werkte in de main-functie, maar nadat de array was "doorgegeven" naar een andere functie leverde het telkens 1 op. Het blijkt dat na het doorgeven die sizeof() standaard 4 returnt. Zie het volgende:
In de main-functie geeft hij precies weer wat hij zou moeten weergeven, maar in sb_arrlength-funtie geeft de sizeof() twee keer een 4, en dat geeft weer een int d = 1. Iemand enig idee hoe dit te verhelpen?
Ik ben net begonnen met C++ en loop ergens tegenaan. Ik ben een functie aan het maken dat de lengte van een array geeft. Nou vond ik het volgende:
Code:
int d = sizeof(row) / sizeof(row[0]);
Dit werkte in de main-functie, maar nadat de array was "doorgegeven" naar een andere functie leverde het telkens 1 op. Het blijkt dat na het doorgeven die sizeof() standaard 4 returnt. Zie het volgende:
Code:
#include <iostream>
using namespace std;
int sb_arrlength(int a[])
{
int d = sizeof(a) / sizeof(a[0]);
cout << sizeof(a) << endl; // geeft 4
cout << sizeof(a[0]) << endl; // geeft 4
cout << d << endl;
return 0;
}
int main()
{
int row[30];
sb_arrlength(row);
int d = sizeof(row) / sizeof(row[0]);
cout << sizeof(row) << endl;// geeft 120
cout << sizeof(row[0]) << endl;// geeft 4
cout << d << endl;
system("PAUSE");
return 0;
}
In de main-functie geeft hij precies weer wat hij zou moeten weergeven, maar in sb_arrlength-funtie geeft de sizeof() twee keer een 4, en dat geeft weer een int d = 1. Iemand enig idee hoe dit te verhelpen?
Laatst bewerkt: