Pb de tableau en C
Fermé
pom
-
4 nov. 2005 à 09:52
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 4 nov. 2005 à 17:33
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 4 nov. 2005 à 17:33
A voir également:
- Pb de tableau en C
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif suivant. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des 4 premières colonnes. cinq valeurs manquent dans le tableau suivant. retrouvez-les dans votre tableau puis reportez-les, arrondies à l’entier le plus proche, dans la zone de réponse. - Forum Excel
2 réponses
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
4 nov. 2005 à 17:16
4 nov. 2005 à 17:16
Salut,
Dans ta fonction d'allocation, il faudrait :
- que tu enregistres la dimension.
- que tu passes un pointeur sur la structure, en effet tu modifies la valeur
du pointeur et de la dimension.
Ce qui donne :
Il faut évidement changer l'appel dans le main :
Pour ta seconde question, tu peux déclarer un pointeur sur 'double',
l'affecter à la valeur du data (aprés l'allocation) et l'utiliser comme tableau.
Mais bon cela est déconseillé car tu perd de la lisibilité du code, mais ça
peut s'appliquer dans le cadre de la recherche de perfo pour des routines
temps réels par exemple [c'est pas le seul truc à faire...].
Dans ta fonction d'allocation, il faudrait :
- que tu enregistres la dimension.
- que tu passes un pointeur sur la structure, en effet tu modifies la valeur
du pointeur et de la dimension.
Ce qui donne :
void alloc_tableau( unsigned int d, Tableau* t ) { assert( d>0 ); t->data = malloc( d*sizeof(double) ) ; assert( t->data!=NULL ) ; t->dim = d ; }
Il faut évidement changer l'appel dans le main :
alloc_tableau( 3, &t1 ) ;
Pour ta seconde question, tu peux déclarer un pointeur sur 'double',
l'affecter à la valeur du data (aprés l'allocation) et l'utiliser comme tableau.
Mais bon cela est déconseillé car tu perd de la lisibilité du code, mais ça
peut s'appliquer dans le cadre de la recherche de perfo pour des routines
temps réels par exemple [c'est pas le seul truc à faire...].
double* vt1 ; ... vt1 = t1.data ; vt1[0] = ... ;
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
4 nov. 2005 à 17:33
4 nov. 2005 à 17:33
typedef struc t_mat
{
unsigned int dim; // la dimension du tableau
double * data;
double operator[](int i){return data[i];}
} Tableau;
maintenant tu peut faire t1[3]=5;
hic : aucun problème en C++, je ne garantie pas la réussite en C...
{
unsigned int dim; // la dimension du tableau
double * data;
double operator[](int i){return data[i];}
} Tableau;
maintenant tu peut faire t1[3]=5;
hic : aucun problème en C++, je ne garantie pas la réussite en C...