Array: Zeiger wieder an erste Stelle setzen
-
Du kannst auch davon profitieren, daß in argc die Anzahl der übergebenen Parameter steht und mit 'argv-=argc;' zurückfahren
-
CStoll schrieb:
Du kannst auch davon profitieren, daß in argc die Anzahl der übergebenen Parameter steht und mit 'argv-=argc;' zurückfahren
sehr schoene loesung. mehr pointerarithmetik!
-
CStoll schrieb:
Du kannst auch davon profitieren, daß in argc die Anzahl der übergebenen Parameter steht und mit 'argv-=argc;' zurückfahren
Das scheint eine gute Lösung zu sein. Danke dafür
-
Eigentlich wundert es mich, dass der Compiler dir das so abkauft - Arrays kann man eigentlich nicht inkrementieren.
Die meines Erachtens sinnvollere Möglichkeit wäre so:
#include <stdio.h> int main(int argc, char *argv[]) { int i; for(i = 0; i < argc; ++i) { printf("argv[%d] == \"%s\"\n", i, argv[i]); } return 0; }
-
seldon schrieb:
Eigentlich wundert es mich, dass der Compiler dir das so abkauft - Arrays kann man eigentlich nicht inkrementieren.
argv ist als Funktionsparameter auch kein "richtiges" Array.
-
seldon schrieb:
Die meines Erachtens sinnvollere Möglichkeit wäre so:
#include <stdio.h> int main(int argc, char *argv[]) { int i; for(i = 0; i < argc; ++i) { printf("argv[%d] == \"%s\"\n", i, argv[i]); } return 0; }
Ack.
-
seldon schrieb:
... for(i = 0; i < argc; ++i) ...
[cpp]
...
for(i = 1; i < argc; ++i)
...
[/cpp]
-
[quote="pale dog"] for(i = 1; i < argc; ++i)
[/cpp]Very good.
-
i know that
-
Wenn du dir den Anfang des Threads nochmal anschaust, wird dir vielleicht auffallen, dass das ursprüngliche Programm argv[0] ebenfalls ausgab.
-
seldon schrieb:
Wenn du dir den Anfang des Threads nochmal anschaust, wird dir vielleicht auffallen, dass das ursprüngliche Programm argv[0] ebenfalls ausgab.
argv[0] ist aber undefiniert. was soll das denn bringen?
-
argv[0] enthält den Programmnamen.
-
seldon schrieb:
argv[0] enthält den Programmnamen.
ja, manchmal. manchmal aber auch nicht.
-
pale dog schrieb:
argv[0] ist aber undefiniert.
pale dog schrieb:
seldon schrieb:
argv[0] enthält den Programmnamen.
ja, manchmal. manchmal aber auch nicht.
Undefiniert ist es aber nie. Schau doch mal in den Standard, bevor du hier Käse erzählst.
-
MFK schrieb:
pale dog schrieb:
argv[0] ist aber undefiniert.
pale dog schrieb:
seldon schrieb:
argv[0] enthält den Programmnamen.
ja, manchmal. manchmal aber auch nicht.
Undefiniert ist es aber nie. Schau doch mal in den Standard, bevor du hier Käse erzählst.
zugegeben, 'undefiniert' (jedenfalls wenn man sich auf den dem C standard bezieht) ist der falsche begriff. es ist aber nicht sicher, dass man in argv[0] den namen des programms o.ä. findet.