En C, on peut écrire ceci :
double f[10];
double *p;
p=f;
p[1]=98.7;
f[1]=98.76;
J'essaie de trouver un moyen, si c'est possible de faire la même chose pour remplacer un tableau par un pointeur sur un tableau pour éviter des copies. Le top du top serait d'éviter de devoir modifier le code utilisant ses structures.
struct org
{
int dummy;
double Matrix[10][10];
};
struct New
{
double (* mtx)[10][10];
int plip;
};
main(){
struct org o;
struct New new;
new.mtx=&(o.Matrix);
o.Matrix[1][0]=1234.5;
(*new.mtx)[1][0]=5.4321;
}
L'ajout de '*' me gène, il faut retoucher le code.
# Comme ça je dirais...
Posté par TortuXm . Évalué à 3.
struct New
{
double (* mtx)[10];
int plip;
};
Mais je n'ai pas de compilateur C sous la main pour tester.
[^] # Re: Comme ça je dirais...
Posté par benoar . Évalué à 3.
[^] # Re: Comme ça je dirais...
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
"La première sécurité est la liberté"
# utiliser un tableau de pointeurs
Posté par dyno partouzeur de drouate . Évalué à 4.
struct org
{
int dummy;
double Matrix[10][10];
};
struct New
{
double ** mtx;
};
main(){
struct org o;
struct New new;
new.mtx = malloc(10 * sizeof(double*));
for (i = 0; i < 10; i++) new.mtx[i] = Matrix[i];
Et du coup tu peux faire
o.Matrix[1][0]=1234.5;
new.mtx[1][0]=5.4321;
free(new.mtx);
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.