Ergebnis 1 bis 20 von 26

Thema: Wie programmiert man ? Kann mir das mal jemand zeigen?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #17
    Zitat Zitat
    1,Ich habe NIX von Arrarys gesagt beim 2 Code sondern nur von 3 Strings
    Ein Array ist nix weiter als eine komfortable Möglichkeit, mehrere gleiche Typen zu erstellen. Demnach erstelle ich hier 3 Strings welche auch als drei einzelne Strings im Speicher liegen. Nur eben hintereinander, was ja wohl nicht verboten sein sollte.

    Was die C anstatt C++ Sache betrifft, ich bin gerade zu müde um mich da jetzt nochmal ran zu machen. Morgen schau ich mal, ob ich da noch ein passendes Beispiel erstellen kann, welches Dadies Code mit C-Strings zeigt.

    EDIT:
    Ich konnt's nicht lassen und habs nochmal eben schnell hingeschmiert:
    Code:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        char* textpointer[3];
        textpointer[0] = (char*) malloc(7);
        textpointer[1] = (char*) malloc(7);
        textpointer[2] = (char*) malloc(7);
        memcpy(textpointer[0], (char*) "test 1", 7);
        memcpy(textpointer[1], (char*) "test 2", 7);
        memcpy(textpointer[2], (char*) "test 3", 7);
        
        for (int i = 0; i < 3; ++i)
        {
            cout<<textpointer[i]<<endl;
        }
    
        cin.get();
        return 0;
    }
    Ist zwar C und C++ gemischt, dennoch sind Stringoperationen jetzt mit den alten C-Strings realisiert worden und nicht mit der String-Klasse. So ähnlich könnte man es machen, da es eben in 7 Minuten gemacht wurde, möge man mir kleine Fehlerchen verzeihen oder nicht darauf beharren, dass dies die einzig korrekte oder schnellstmögliche Methode sei.


    EDIT2: Methode 2, welche ein mehrdimensionales Array verwendet und demnach keine malloc-Funktion:

    Code:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        char textpointer[3][7];
        memcpy(&textpointer[0][0], (char*) "test 1", 7);
        memcpy(&textpointer[1][0], (char*) "test 2", 7);
        memcpy(&textpointer[2][0], (char*) "test 3", 7);
      
        for (int i = 0; i < 3; ++i)
        {
            for (int x = 0; x < 7; ++x)
            {
                cout<<textpointer[i][x];
                if (x == 6)
                {
                    cout<<endl;
                }
            }
        }
    
        cin.get();
        return 0;
    }
    Und ja, ich seh schon, man könnte dein Speicher vor Beenden des Programms noch wieder freigeben, ich seh aber durchaus Windows dazu in der Lage, für dieses kleine Testprogramm, das mal zu übernehmen.

    Geändert von Ynnus (22.06.2005 um 23:41 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •