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++.