
[programmation]long en char
J'ai encore un problème, basique cette fois ci !
Je suis toujours en train de programmer (en C) .
Voila le principe de la partie du programme qui me pose probleme:
- Je fait un tableau de "long" avec:
Code:
long* tableau = NULL;
long nb_envoi = 10;
tableau = malloc(nb_envoi * sizeof(long)); // On alloue de la mémoire pour le tableau
- Je remplie le tableau avec des nombres paires:
Code:
for (i = 0 ; i < nb_envoi ; i++)
{
tableau[i] = envoi_client +2; //envoi_client étant un "long" initialisé à 0
envoi_client = envoi_client +2;
}
- J'envoie chaque case du tableau l'une apres l'autre avec une socket:
Code:
for (compteur = 0; compteur < nb_envoi; compteur++)
{
int lg;
sprintf( buffer, "%ld", tableau[compteur] ); //mauvaise fonction ?
lg = strlen(tableau[compteur]); //probleme ici
sendto(sock,tableau[compteur],lg,0,(struct sockaddr *) &server,length); //et probleme ici
}
et gcc me met à la compilation:
attention : passing argument 1 of ‘strlen’ makes pointer from integer without a cast
attention : passing argument 2 of ‘sendto’ makes pointer from integer without a cast
Donc le type n'est pas le bon. D'apres les MAN des fonctions j'ai:
int sendto(int s, const void *chaine, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
et
strlen(const char* chaine);
Quelqu'un sait comment je peux passer mes valeurs du tableau de "long" à des "char" ? (le sprintf ne m'a pas aidé mais je l'ai peut être mal utilisé ... )