Pointeur en c
Résolu
yuri648
Messages postés
785
Statut
Membre
-
yuri648 Messages postés 785 Statut Membre -
yuri648 Messages postés 785 Statut Membre -
Bonjour,
j'ai 2 tableau en c sous forme
double *c = (double *) calloc (50, sizeof(double));
double *ress = (double *) calloc (100, sizeof(double));
comment je peux copier le tableau c au tableau ress apartir de la 10 iemme colonnes du tableau ress?
merci
j'ai 2 tableau en c sous forme
double *c = (double *) calloc (50, sizeof(double));
double *ress = (double *) calloc (100, sizeof(double));
comment je peux copier le tableau c au tableau ress apartir de la 10 iemme colonnes du tableau ress?
merci
4 réponses
-
Salut
avec memcpy:void *memcpy(void *dest, const void *src, size_t n);
-
Bonjour,
ça donne c[50] et ress[100]
int i;
for(i=0;i<50;i++) ress[i+10]=c[i];
un truc comme ça -
@Hxyp j'ai essayé comme tu m'a dit elle n'a pas marché
@arthurc j'ai essayé comsa mais s'a marche pas
memcpy(ress+10, c, sizeof(double));
merci bcp mes amis-
Ma proposition fonctionne et celle d'arthurc aussi. Code pour l'exemple :
#include <stdio.h> #include <string.h> #include <stdlib.h> /*test1 utilisant une boucle*/ void test1() { double *c=calloc(50,sizeof(double)); double *ress=calloc(100,sizeof(double)); int i; //remplissage de c 1-50 : for(i=0;i<50;i++)c[i]=(double)i+1; //copy de c dans ress a partir de la 10e valeur de ress : for(i=0;i<50;i++)ress[i+10]=c[i]; //affichage de ress : for(i=0;i<100;i++)printf("ress[%d]=%f\n",i,ress[i]); free(c); free(ress); } /*test2 utilisant memcpy*/ void test2() { double *c=calloc(50,sizeof(double)); double *ress=calloc(100,sizeof(double)); double *ptr; int i; ptr=&ress[10];//ptr pointe à partir de l'adresse ress[10] donc ptr[0]==ress[10] //remplissage de c 1-50 : for(i=0;i<50;i++)c[i]=(double)i+1; //copy de c dans ress a partir de la 10e valeur de ress : memcpy(ptr,c,50*sizeof(double)); //affichage de ress : for(i=0;i<100;i++)printf("ress[%d]=%f\n",i,ress[i]); free(c); free(ress); } int main() { printf("test1 :\n"); test1(); printf("test2 :\n"); test2(); return EXIT_SUCCESS; }
edit : correction d'une bêtise ..
-
-
merci mes amis j'ai réglé mon prb c'était au niveau algorithmique