Bonjour ,

J'ai un problème au niveau du calloc et du strcpy, un warning qui semble pouvoir être contourner avec un cast foireux , mais j'ai bien peur que ce ne soit pas la solution
A ce que j'ai compris , calloc alloue un pointeur vers un tableau en mémoire , je me trompe ?

Dans le code qui suit, je ne fais aucune vérification sur le retour des fonctions, c'est juste à titre d'exemple pour le calloc :

voici l'erreur : warning: passing argument 1 of ‘strcpy’ makes pointer from integer without a cast

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
30
31
 
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char* split(char * );
int main()
{
	int i;
	char buff[100] = "azerty.qsdfg.wxcvb";
	char * p = split(&buff[0]);
	for(i=0;i<3;i++)
		printf("%s\n",p[i]);
	free(p);
	return 0;
 
}
char* split(char *buff)
{
	int i = 0;
	char *chaine = (char*) calloc(3,sizeof(char)*20);
	char *pseek = strtok(buff,".");
	while( pseek!= NULL )
	{
		strcpy(chaine[i++],pseek);
		pseek = strtok(NULL,".");
	}
	return chaine;
 
}
Merci d'avance de votre aide