Hallo alle zusammen, ich hab eine Frage bezüglich des Addierens der Elemente eines eindimensionalen Arrays. Eine der Wochenünungen in meinem Studium bezüglich des Einstiegs in Java war, in Java eine Methode zu schreiben, die die Elemente eines Arrays addiert und deren Summe zurückgibt. In Java hatte ich das Ding innerhalb weniger Minuten geschrieben, und es sieht wie folgt aus:

Code (Java):
 
public static int sumArray(int[] arr) {
int sum = 0;
int soa = arr.length;
for(int i = 0; i < soa; i++) {
sum = sum + arr[i]; }
return sum; }


Ich habe spaßeshalber auch mal versucht, die gesamte Übung (waren 5 Aufgaben, diese hier war eine davon) in C++ umzusetzen, was bis auf diese Aufgabe hier auch geklappt hat.

Hier ist die Methode in C++:

Code (C++):
 
static int sumArray(int arr[]) {
int sum = 0;
int soa = sizeof(arr)/sizeof(int);
for(int i = 0; i < soa; i++) {
sum = sum + arr[i]; }
return sum; }


Für den Array int bb[3] = { 1, 2, 3 }; gibt diese Methode seltsamerweise aber nur die Zahl 1 aus. Ich habe bereits überprüft, ob sizeof(arr)/sizeof(int) das richtige Ergebnis liefert, aber das tut es, floglich muss es an etwas anderem liegen. Dahingehen bräuchte ich jetzt Hilfe. Ich hab das Programm sowol mit dem gcc, als auch mit dem Visual Studio 13-Compiler compiliert, und bei beiden tritt der selbe Fehler auf.