matrice bidimensională dinamică în c
matrice bidimensională dinamică în c
Comentarii
(willothewisp | 03/09/2004, p - 13:32)
Salut
M-ar putea ajuta cineva?
Am participat de aproximativ jumătate de zi, dar încă nu mi-am dat seama de ce procedura de mai jos nu funcționează?
[cod: 1: 391093eb67]
#include
#include
#include
int fill (char *** arr)
* arr = malloc (sizeof (char *) * 2);
* arr [0] = malloc (sizeof (char) * 20);
strcpy (* arr [0], "testtext0");
* arr [1] = malloc (sizeof (char) * 20);
strcpy (* arr [1], "testtext1");
umplere (& t);
printf ("% s \ n", t [0]);
printf ("% s \ n", t [1]);
retur 0;
>
[/ code: 1: 391093eb67]
Când funcția de umplere returnează t [0] este bine, dar t [1] pare a fi pierdut - returnează NULL.
Iată cum funcționează:
[cod: 1: 391093eb67]
#include
#include
#include
t = malloc (sizeof (char *) * 2);
t [0] = malloc (sizeof (char) * 20);
strcpy (t [0], "testtext0");
printf ("% s \ n", t [0]);
t [1] = malloc (sizeof (char) * 20);
strcpy (t [1], "testtext1");
printf ("% s \ n", t [1]);
retur 0;
>
[/ code: 1: 391093eb67]
Nu este deloc frumos. Ei bine, dacă am avut atât de mult timp pe el, aș vrea cu siguranță să știu cum să rezolv funcția principală pentru a declara viitoarea matrice de șiruri - pe care nu le puteți ști în avans, câte și cât timp liniile din care va consta - și toate celelalte operații - inclusiv alocarea memoriei - îndeplinesc funcții separate.
Ajutor;
if (ajutor> 0) printf ("mulțumesc \ n");
>
- Viața dinamică (carte) - Skip Ross - Carole C
- Accize în creștere, amendă pentru ambrozie
- Pastă de dinți pentru adulți SPLAT BIOCALCIUM pastă de dinți 100 ml
- Stea; rk; p (Gergely Ferenc, Tandori Dezső bibliogr; fusa) Orange Maghiară
- Au decis să prelungească moratoriul asupra rambursării - Ripost