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
    a

    aus ???



  • [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. ]


Anmelden zum Antworten