vector klasse
-
was ist den hier bitte falsch
#include <iostream> #include <stdlib.h> #include <vector> #include <string.h> using namespace std; void main(int argc, char* argv[]) { char *buf=NULL; int len = strlen(argv[1]); bool test=false; int i=0; buf = (char *) malloc(len); strncpy(buf,argv[1],len); vector<char>menge; vector<char>menge2; vector<char>::iterator pos; vector<char>::iterator pos2; for(i=0;i<=len;i++) { if(buf[i]!=' ') { menge.push_back(buf[i]); cout<<menge[i]<<endl; } } }
------------------------------------------
ich bekomme immer das herraus
C:\studium2\algo\aufgabe3>aufgabe3_a "ab ba"
a
b?
C:\studium2\algo\aufgabe3>
aber wieso gibt er denn nicht
a
b
b
aaus ???
-
[käse]vielleicht weil deine bash diese art von parameterübergabe (mit gänsefüsschen) nucht unterstützt?[/käse]
(weiterhin, jedoch nicht am fehler schuld: du solltest new und delete verwenden, sowie den speicher wieder freigeben. wie speicherst du den inhalt aus argv[1] eigentlich zwischen? du könntest ihn auch direkt verwenden)
edit: das problem ist, dass bei einem lehrzeichen der counter hochgesetzt wird, aber nichts in den vektor eingetragen wird. du greifst also ab dem leerzeichen auf nichtexistierende elemente des vektors zurück
[ Dieser Beitrag wurde am 06.05.2003 um 17:41 Uhr von Korbinian editiert. ]