Ergebnis 1 bis 3 von 3
  1. #1
    Trojaner Avatar von Bismarck_1
    Registriert seit
    20.06.2009
    Beiträge
    50

    Standard C++ vector _beginthread Problem

    Code:
    #include <iostream>
    #include <string>
    #include <process.h>
    #include <vector>
    
    using namespace std;
    
    class CInstanz
    {
    public:
        static void thread(void *dertext)
        {
            cout << endl << "Inhalt: ";
            cout << dertext << endl;
        }
    };
    
    int main()
    {
        CInstanz a;
        vector<string> vTestString;
        vector<string>::iterator i;
    
        vTestString.push_back ("TextText");
        i = vTestString.begin();
    
        _beginthread(&a.thread,0,(void *)&i);
    
        system("PAUSE");
        return 0;
    }
    Wie bekomme ich statt der Adresse den Inhalt von "dertext" ausgegeben?

  2. #2
    Fortgeschrittener Avatar von The-God-of-all
    Registriert seit
    02.09.2007
    Beiträge
    46

    Standard

    Du übergibst ja nur einen Pointer vom Typ void. Wenn du den String ausgeben willst dann musst du ihn erstmal wieder zurück zu einem String Pointer umwandeln. Versuch es mal so:

    Geändert von blackberry (31.07.2010 um 20:53 Uhr) Grund: + SPOILER um Code
    "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher."
    Albert Einstein

  3. #3
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Casten:


    Erklärung:
    der übergibst einen Zeiger auf einen Iterator für vector<string>. Also erstellst du dir eine neue Variable, die genau diesen Typ hat, weist ihr den Parameter zu (natürlich mit Cast, da C++ ein strengeres Typsystem hat als C und eine Konvertierung von void* auf was anderes nicht so einfach zulässt).
    Danach kannst du mit *i wieder auf den Iterator zugreifen. **i ist somit *(*i) und damit der Zugriff auf das Element, auf das der Iterator verweist.

    @The-God-of-all
    So ein Blödsinn...
    Geändert von blackberry (31.07.2010 um 20:44 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

Stichworte

Berechtigungen

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