Subscript requires array or pointer type

Signaler
Messages postés
1
Date d'inscription
jeudi 19 mai 2005
Statut
Membre
Dernière intervention
21 mai 2005
-
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010
-
Bonjour ,

J'ai fait la fonction suivante :
double * transpose (double *x, double *w, int n)
{

double *xw = new double[2 *n];
int i;
for(i = 0; i < n; i++)
{
xw[i][1]=x[i];
xw[i][2]=w[i];
}
return xw;
};
et a la compil j'ai les erreurs suivantes et je ne comprends pas pourquoi :
subscript requires array or pointer type et
'=' : left operand must be l-value
pourriez vous m'aider????,

merci ;0)

2 réponses

Messages postés
28
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
13 mars 2012

Salut,

A mon avis tu as un problème là

xw[i*2][0]=x[i];
xw[i*2][1]=w[i];

Dan34
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

Bonjour,



En fait avec ton new, tu alloues de la mémoire pour un tableau à une seule dimension.

En c, cela donnerai :



double** transpose (double *x, double *w, int n)

{

double **xw;

int i;



xw = (double**)malloc(n * sizeof(double));

for(i=0; i < n; i++)

xw[i] = (double*)malloc(2 * sizeof(double));



for(i = 0; i < n; i++)

{

xw[i][0] = x[i];

xw[i][1] = w[i];

}



return xw;

};


Attention, il faut vérifier la valeur de retour des malloc et ne pas oublier de liberer la memoire,




Matt...