Also ich habe gerade mal zum üben ein paar Prüfungsaufgaben der letzten Jahre lösen wollen um mich ein wenig auf die in 2 Wochen kommenden Prüdungen vorzubereiten. Darin war u.a. eine Aufgabe in der es galt eine Visa-Card Nummer zu überprüfen. Aufgabe schonmal nicht schwer, also rangesetzt und losgelegt.
- Bedingung Nummer darf nicht kleiner/größer sein als 16 Zeichen. OK kein Thema dacht ich mir, leg ich ein int-Array an welche die Nummer beinhaltet. Und dann kam ein kleines Makro von mir zum Einsatz womit ich die Größe eines Arrays in C und C++ herausfinden kann(Hat bisher immer funktioniert!) und da ist das Problem: Ich bekomme immer 1 als Ergebnis. Warum? Habe zum erstenmal mit DevCpp auf Windoof entwickelt, sonst nutze ich MS Visual Studio C++ Express Edition. Liegt es am Mingw-Compiler der ja in DevCpp verwendet wird? Hier kurz bisschen QC zum nachvollziehen was ich eigentlich will:
// ...
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(*(x)))
// ...
// main()
// ...
int visanr[] = {0, 6, 9, 9, 0, 0, 4, 3, 1, 3, 1, 3, 9, 6, 4, 2};
if(isValidVisa(visanr)) {
cout << "Is Valid!" << endl;
}
// ...
// isValidVisa(int nr[])
// ...
int length = ARRAY_SIZE(nr);
if(length != VISA_MAX_LENGTH) {
return(false);
}
// ...
Vielleicht hatte schonmal jemand dieses Phänomen und weiß woran es lag? Ich steh momentan aufm Schlauch.
Gut Schuß
VuuRWerK