Salut.
J'ai un problème, j'envoie un pointeur à une fonction mais celui-ci n'est pas modifié.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
std::string Network::getLastRequest(User* user) {
    std::string request="";
    clock.restart();
    std::vector<std::pair<User*, std::string>>::iterator it;
    while (request == "" && clock.getElapsedTime().asSeconds() < timeOut.asSeconds()) {
        if (requests.size() > 0) {
            it = requests.begin();
            request = it->second;
            user = it->first;
            it = requests.erase(it);
        }
    }
    return request;
}
Je récupère la dernière requête reçue, ainsi que un pointeur vers l'utilisateur qui a envoyé la requête afin de renvoyer une réponse, malheureusement, le pointeur *user que j'envoie à la fonction n'est pas modifié du coup j'ai un socket null et ça plante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 odfaeg::User* user = nullptr;
        if (odfaeg::Network::hasRequest()) {
            std::string request = odfaeg::Network::getLastRequest(user);
            std::cout<<"request : "<<request<<std::endl;
            std::cout<<"socket adress : "<<&user->getTcpSocket()<<std::endl;
            if (request == "ping") {
                odfaeg::SymEncPacket packet;
                packet<<"pong";
 
                user->sendTcpPacket(packet);
            }
        }
Voici le prototype de la fonction dans le .h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
static std::string getLastRequest (User *user = nullptr);
Pour info je suis sur ubuntu 64 bits.