Bonjour,

j'ai créer un programme c++ console qui utilise un socket.

celui ci à été créer sous codeblock via mingw sous windows.

Le dis socket travaille avec du char, je ne sais pas comment faire avec du string

du coup, je me retrouve à vouloir convertir du string en char chaque fois que je veux envoyé un message par mon socket pour mon tchat interne, ce que je sais faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
    string message;
 
    char buffer[message.size()+1];
 
    strcpy(buffer, message.c_str());
 
    cout << buffer;

simplement, comme dans mon programme je le fais à différente reprise, j'ai voulu faire une fonction qui le face

ce que j'ai fais :

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
16
17
18
19
20
21
22
23
24
25
26
27
28
 
 
#include <iostream>
#include <string>
#include <cstring>
 
 
using namespace std;
 
 
void string_to_char(string un_string, char *un_tableau);
 
int main()
{
    string une_requete = "Roto";
    char un_tableau;
    string_to_char(une_requete, &un_tableau);
 
    cout << un_tableau;
 
    return 0;
}
void string_to_char(string request, char *table) {
 
    table[request.size()+1];
 
    strcpy(table, request.c_str());
}

Ce code m'affiche le R de " ROTO ", et après provoque une erreur windows qui m'oblige à fermer l'application console et je ne comprends pas pourquoi, pourtant j'utilise bien un pointeur, même si c'est la première fois que j'en utilise, je ne vois pas ou sa merderais !

J'ai aussi entendu parlé d'un truc qui s'appelle un " Cast ", seriez vous m'expliquer ?

Aussi, je fonctionne sans debbuguer dans codeblock , seriez vous m'en conseiller un ?