Merci pour ta réponse
! J'ai regardé de nouveau le cours et voila ce que j'ai compris :
Que crois-tu qu'il se passe en mémoire lorsque tu crées ta structure et que tu alloues dynamiquement de la place pour ses membres ?
À ce moment-là le programme va réserver des places dans la mémoire (un nombre d'adresses égal à la dimension de ma matrice) du coup je vais réserver dans la mémoire de l'ordinateur 4 adresses de celle-ci, qui pour l'instant ne contiennent aucune valeur
!
Ce que send attend, c'est une adresse mémoire et le nombre d'octets à lire à partir de cette adresse. Que crois-tu qu'il se passe lorsque tu lui donnes l'adresse d'une variable de type struct Image et la taille d'une struct Image ?
Justement c'est peu être là où je n'ai pas trop compris
, pour moi lorsque je fais &NewImage TabImage je ne donne pas à send l'adresse de la variable, mais la valeur contenue à l'adresse de cette adresse. Du coup j'envoie les valeurs contenues dans les adresses que je venais d'allouer dynamiquement .
En gros quand je fais &NewImage TabImage pour moi il va chercher la valeur à cette adresse et l'envoyer (ici il enverra 32) :
Adresse |
Valeur |
0xFFFFFF |
32 |
Ça c'est incorrect. Quelle est la différence entre sizeof(NewImage.TabImage) et sizeof(float) selon toi ?
Pour moi sizeof(float) correspond à la taille prise en mémoire d'un flottant et sizeof(NewImage.TabImage) correspond lui à la taille d'un tableau non alloué donc pas grand chose 
Edit : Du coup si je corrige le code par cette ligne est-ce correct ?
sock_err = send(csock,*NewImage.tabImage,4*sizeof(float), 0);
Partager