Bonjour,
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
29 int main() { char* chaine_login; int Login_length cout << "Enter La taille de votre Login. cin >> Login_length; chaine_login=(char*)malloc(Login_length+1); ZeroMemory(chaine_login,sizeof(chaine_login)); function_de_génération(chaine_login);//qui appele à son tour try_login() } --------------corps des fonctions-------- try_login(char* temp_login) { traitemenet socket .... send(socket,temp_login,sizeof(temp_login)) } function_de_génération(char* temp_login) { int i=0; temp_login[i]='A'; temp_login[i+1]='\0'; ..... try_login(temp_login) }
ce petit programe lit une longeur d'une chaine de caractère,après génere les combinaison alphanumeriques pour cette longeure ensuite envoie la chaine,lit le retour du serveur pour juger la réussite d'authentification.
je passe la meme variable temp_login à toutes les fonctions,or la fonction send() envoie tout le buffer temp_login que j'ai allocé sur main(),et se fout du caractère '\0',donc je me retrouve avec un bourrage indésirable qui gène mon authentification,quand je reserve un char temp_login[3]="ab"; et je fais send(s,temp_login)ca fonctionne parceque il y'a pas de bourrage.comment je peux remédier à ça,merci
Partager