Array Länge abfragen mit Function, falsches Ergebnis



  • Guten Morgen,
    Hoffe ich bin hier im richtigen Thread gelandet.
    Ich versuche mich grade wieder an C++.
    Habe im Internet eine Möglichkeit gefunden die Array-Länge abzufragen und wollte das ganze in eine Funktion einbinden.
    Wenn ich diese aber aufrufe erhalte ich Länge = 1. Ohne die Funktion stimmt es jedoch (Länge = 19). Habe ich da was übersehen?

    Die Kommentare im Code können ignoriert werden 🙂

    #include <iostream>
    
    using namespace std;
    
    int getArraySize(int a[]);
    //char spielfeld_fuellen(char feld[]);
    
    int main() {
    	//char spielfeld[10][10];
    	int a[19];
    	//cout << sizeof(a)/sizeof(int) << endl;
    	cout << getArraySize(a) << endl;
    }
    
    int getArraySize(int a[]){
    	return sizeof(a)/sizeof(int);
    }
    
    /*char spielfeld_fuellen(char feld[]) {
    	for (int i = 0; i < feld.length; i++) {
    
    	}
    }*/
    


  • arrays werden bei Übergabe an Funktionen warum auch immer in Zeiger konvertiert, da gilt immer sizeof(a) / sizeof(des Typs) = 1. Vlt. gehts mit Referenzübergabe



  • Falsches Unterforum, korrekt wäre C++.


Anmelden zum Antworten