OK problem vyrieseny

Programovacie jazyky, rady, poradňa...
Stifo16
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 209
Registrovaný: 17 máj 2005, 21:32

OK problem vyrieseny

Príspevok od používateľa Stifo16 »

Problem vyrieseny ...
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

Príspevok od používateľa neutronmind »

Skus to takto

Kód: Vybrať všetko

void alokuj(matica *m) 
{ 
  FILE *subor; 

  subor = fopen ("kkt.txt", "r"); 

  fscanf (subor, "%d %d", &m->m, &m->n); 

  m->data = (int **)malloc (m->m * sizeof(int *)); 

  for (int j = 0; j < m->m; j++) 
  { 
    m->data[j] = (int *) malloc (m->n * sizeof(int)); 
    for (int i = 0; i < m->n; i++) 
    { 
      fscanf (subor, "%d", &m->data[j][i]); 
    } 
  } 

}
pricom ju potom musis vyvolavat takto
alokuj(&m1);
alokuj(&m2);
alokuj(&m3);
,
teda dat tam referencny operator. Malo by to fungovat. :wink:
Stifo16
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 209
Registrovaný: 17 máj 2005, 21:32

Príspevok od používateľa Stifo16 »

Problem vyrieseny ...
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

Príspevok od používateľa neutronmind »

Nie je zac. :)
btw. ako to myslis? Tak ako si to mal predtym, to nepojde preto, lebo do funkcie vstupuje hodnota argumentu. Ak chces tuto hodnotu zmenit globalne, teda nie len v tej funkcii, tak odosles adresu premennej (&m1) a hodnotu na tejto adrese potom zmenis...
Napísať odpoveď