C: Incompatible type on dynamic array of pointers of structure -


i need declare dynamic array of pointers. read articles , similar questions , try project still frozen.

what i'm trying do:

typedef struct recarmario armario, *parmario;  struct recarmario {     int id;     parmario next;     parmario prev;     pcorredor parent; };  parmario auxarmariotest1 = malloc(sizeof(armario)); auxarmariotest1->id = 1; parmario auxarmariotest2 = malloc(sizeof(armario)); auxarmariotest2->id = 2;  (…)  //dynamic array of pointer armario: parmario arrarmariospointers = malloc(sizeof(parmario) * maxcorredores); //here doubt *(arrarmariospointers + idcorredor) = auxarmariotest1; 

xcode saying:

assigning 'struct recarmario' incompatible type 'parmario' (aka 'struct recarmario *'); dereference * 

i don't understand, "assigning 'struct recarmario'"?! declare 1 array of parmario, think so.

*(arrarmariospointers + idcorredor) equivalent arrarmariospointers[idcorredor], right?

update 1:

thanks answers! update sample , still have problems.

parmario auxarmariotest1 = malloc(sizeof(armario)); auxarmariotest1->id = 1; parmario auxarmariotest2 = malloc(sizeof(armario)); auxarmariotest2->id = 2;  //dynamic array of pointer armario: parmario arrarmariospointers = malloc(sizeof(parmario) * 5); //test parmario auxa; auxa = arrarmariospointers + 0; //i know, it's useless :) auxa = auxarmariotest1; auxa = arrarmariospointers + 1; auxa = auxarmariotest2;  printf("\na%d",(arrarmariospointers+0)->id); printf("\na%d",(arrarmariospointers+1)->id);  free(auxarmariotest1); free(auxarmariotest2); 

the result is:

a0 a0 

what i'm doing wrong, again?

update 2:

forget update 1, dumb. i'm changing auxa.

solution:

parmario* arrarmariospointers = malloc(sizeof(parmario) * 5);  arrarmariospointers[0] = auxarmariotest1; arrarmariospointers[1] = auxarmariotest2;  printf("\na%d",arrarmariospointers[0]->id); printf("\na%d",arrarmariospointers[1]->id); 

thanks everyone.

*(arrarmariospointers + idcorredor) = auxarmariotest1; 

here arrarmariospointers + idcorredor parmario or struct recarmario *, dereferencing give struct recarmario assign auxarmariotest1 struct recarmario *. in short, assigning pointer struct, error

for update 1, may trying achieve?

parmario * arrarmariospointers = malloc(sizeof(parmario) * 5); arrarmariospointers[0] = auxarmariotest1; arrarmariospointers[1] = auxarmariotest2;  printf("\na%d",(arrarmariospointers[0])->id); printf("\na%d",(arrarmariospointers[1])->id); 

Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -