Problème lors de l'envoi d'une matrice par socket
Bonjour,
J'essaye d'envoyer une matrice de float (tableau à deux dimensions) par socket, avec les cours sur internet j'arrive bien à envoyer d'un client vers un serveur une chaine de caractère ainsi que des structures. Du coup mon idée était justement d'utiliser des structures afin d'envoyer mon tableau à deux dimensions. Du coup je crée un tableau 2*2 que je copie dans ma structure et je l'envoie. Le problème est que quand j'essaye de la récupérer j'ai une erreur de segmentation, et je ne vois absolument pas d'où ça peut venir :calim2: ?
Voici le code en question du côté serveur:
Code:
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
| //Création de la structure
typedef struct Image Image;
struct Image{
float** tabImage;
};
float **tab2=NULL;
tab2=allocation(2,2);
tab2[0][0]=2.0;
tab2[0][1]=4.32;
tab2[1][0]=1.47;
tab2[1][1]=8.37;
Image NewImage;
NewImage.tabImage=allocation(2,2);//Fonction qui alloue dynamiquement la matrice
int i,j;
//Recopie les valeurs de tab2 dans la structure
for(i=0;i<2;i++)
for(j=0;j<2;j++)
NewImage.tabImage[i][j]=tab2[i][j];
//Envoie la structure
sock_err = send(csock,&NewImage,sizeof(NewImage), 0); |
Et voici le code en question côté client
Code:
1 2 3 4 5 6 7 8 9 10
| /*Déclaration de la structure coté client
typedef struct Image Image;
struct Image{
float** tabImage;
};
Image NewImage;
NewImage.tabImage=allocation(2,2); //allocation dynamique du tableau
recv(sock,&NewImage.tabImage ,sizeof(NewImage), 0);
//Reception de la structure |
Je n'ai pas mis le reste de la fonction car je pense que l'erreur vient de ces lignes (car ça marche bien sinon avec une chaine de caractère ou une structure avec des int, double...),mais si il faut je la mettrai sans problème !
Merci :) !