DarkMo
Lötkolbengott/-göttin
AW: Neues unter Forum für Android App Programmierer.
schau dir das experiment nochmal an. die "vorgeschichte" nochmal ausgespoilert und das wichtige fett markiert. und jetzt überlege, WIE du dein programm startest - wie der aufruf aussieht. ganz sicher doch in etwa so: "/java kreisberechnung2". hier hast du KEINE argumente ange-/übergeben. das array args ist also leer. args[0] ist nicht belegt - darauf kann nicht zugegriffen werden -> speicherschutzverletzung bzw eben out of bounds exception. zu deutsch etwa "ausserhalb der reichweite ausnahme" ^^
worum dreht sich denn das ganze kapitel? um dieses args gelumbe oder? hiermit soll das wohl geübt werden bzw verdeutlicht. also mach doch mall statt:
"/java kreisberechnung2"
"/java kreisberechnung2 5"
siehst du den unterschied? die 5 ist args[0]. bei dir fehlt diese angabe
=> es gibt kein args[0].
Call ich den C++ code ./untitled Hallo Welt bekomme ich als Output:Ja, ist korrekt.
Beweis:
In C++:
und in Java.Code:#include <iostream> using namespace std; int main(int argc, char *argv[]) { cout << "argc = " << argc << endl; for (int i = 0; i < argc; i++) { cout << "argv[" << i << "] = " << argv[i] << endl; } }
Nenne ich beide mal Untitled.Code:class Untitled { public static void main(String[] args) { System.out.println("args.length = " + args.length); for (int i = 0; i < args.length; i++) { System.out.println("args[" + i + "] = " + args[i]); } } }
argc = 3
argv[0] = ./Untitled
argv[1] = Hallo
argv[2] = Welt
Bei Java bekomme ich als Output:
args.length = 2
args[0] = Hallo
args[1] = Welt
worum dreht sich denn das ganze kapitel? um dieses args gelumbe oder? hiermit soll das wohl geübt werden bzw verdeutlicht. also mach doch mall statt:
"/java kreisberechnung2"
"/java kreisberechnung2 5"
siehst du den unterschied? die 5 ist args[0]. bei dir fehlt diese angabe
=> es gibt kein args[0].





ok, werde es morgen sofort ausprobieren. Danke.