Koda: |
//npr.
list polje[100]; |
Koda: |
strcpy(); // za kopiranje niza na niz
strncpy(); // za prepis n znakov iz izvora na ponor strcat(); // za sestavljanje dveh nizov |
Koda: |
strcpy(polje[i].tekst, niz); |
S53DZ je napisal/a: | ||
EDIT: Še ideja za naprej:
Upam, da tole dela, ker je že pozna ura. |
Koda: |
struct list
{ int koda; char tekst[16]; } vnos, *listp, *listp1 ; listp = (struct list *)malloc(sizeof(struct list ) * 20); strcpy(listp[i].tekst, niz); |
gregoral je napisal/a: | ||
Nekako takole bi moralo delat:
LP, Gregor |
Koda: |
strcpy(listp[i].tekst, niz); |
Koda: |
int main ()
{ int i,n; struct list { char tekst[16]; int koda; } vnos, *listp, *listp1 ; char *tekstp; // listp = (struct list *)malloc(sizeof(struct list ) * 20); listp = (struct list *)calloc(20, sizeof(struct list ) ); if (listp == NULL) { printf ("malloc neuspešen \n"); return 10; } listp1 = listp + 10; // recimo da hočem deseti vpis vnos = *listp1; // prenos v delovno strukturo strcpy (vnos.tekst, "Hej, ljudje!"); // zakaj dobim tukaj warning? vnos.koda = 10; *listp1 = vnos; // vpisem nazaj v memory block // in nazaj: listp1 = listp + 10; vnos = *listp1; printf ("%d %s \n", vnos.koda, vnos.tekst); printf ("malloc uspešen \n"); free (listp); return 0; } |
Citiram: |
calloc2.c:24: warning: incompatible implicit declaration of built-in function 'strcpy'
|
Koda: |
struct strukturax { int xyz; } strukturax; char *str; strukturax *pStruktura; str[0] = 'a'; pStruktura[0].xyz = 1; |
Koda: |
int *p; int *ap[10]; |
Koda: |
int main ()
{ int i,n; struct list { char tekst[16]; int koda; } vnos, *listp, *listp1 ; char *tekstp; // listp = (struct list *)malloc(sizeof(struct list ) * 20); listp = (struct list *)calloc(20, sizeof(struct list ) ); if (listp == NULL) { printf ("malloc neuspešen \n"); return 10; } // indexi se začnejo z 0 zato je to 11 zapis listp1 = listp + 10; // recimo da hočem deseti vpis // tukaj povsem brez potrebe kopiraš vsebino vnos = *listp1; // prenos v delovno strukturo strcpy (vnos.tekst, "Hej, ljudje!"); // zakaj dobim tukaj warning? vnos.koda = 10; *listp1 = vnos; // vpisem nazaj v memory block // tole dvoje pa sploh ni potrebno saj // listp1 že/še vedno kaže na listp + 10 // vnos že vsebuje podatke iz strukture listp+10 // in nazaj: //listp1 = listp + 10; //vnos = *listp1; printf ("%d %s \n", vnos.koda, vnos.tekst); printf ("malloc uspešen \n"); free (listp); return 0; } |
Koda: |
int main ()
{ int i,n; struct list { char tekst[16]; int koda; } vnos, *listp, *listp1 ; char *tekstp; // listp = (struct list *)malloc(sizeof(struct list ) * 20); listp = (struct list *)calloc(20, sizeof(struct list ) ); if (listp == NULL) { printf ("malloc neuspešen \n"); return 10; } // recimo da hočem deseti vpis listp1 = listp + 9; strcpy (listp1->tekst, "Hej, ljudje!"); // zakaj dobim tukaj warning? listp1->koda = 10; printf ("%d %s \n", vnos.koda, vnos.tekst); printf ("malloc uspešen \n"); free (listp); return 0; } |