Zdravim,
mam opat velky problem so spajanym dynamickym zoznamom.
Mam takyto kod:
typedef struct prvek {
int hodnota;
struct prvek *p_dalsi;
} PRVEK;
PRVEK *alokuj_a_testuj(void)
{
PRVEK *p_pom;
p_pom = (PRVEK *) malloc(sizeof(PRVEK));
if (p_pom == NULL) {
printf("Malo pameti\n");
exit(1);
}
return p_pom;
}
int main(void)
{
int i, n, k;
PRVEK *p_prv, *p_akt, *p_pred;
n = 10;
/* vytvoreni prvniho prvku */
p_prv = alokuj_a_testuj();
p_prv->hodnota = 1;
p_prv->p_dalsi = NULL;
p_akt = p_prv;
/* vytvoreni vsech dalsich prvku */
for (i = 2; i <= n; i++) {
p_akt->p_dalsi = alokuj_a_testuj();
p_akt = p_akt->p_dalsi;
p_akt->hodnota = i;
p_akt->p_dalsi = NULL;
}
for (p_akt = p_prv; p_akt != NULL; p_akt = p_akt->p_dalsi) {
printf("%2d [%p]\n", p_akt->hodnota, p_akt);
}
/* zaverecne uvolneni pameti */
for (p_akt = p_prv; p_akt != NULL; ) {
p_prv = p_akt;
p_akt = p_akt->p_dalsi;
free((void *) p_prv);
}
return 0;
}
Vsetko mi jasne, len teraz mi ide o to, ze by som chcel pridat novy zaznam. Nakoniec zoznamu by som to vedel pridat, ale ja to chcem pridat napr. na poziciu 3 a ostane by sa posunulo doprava. Vobec mi to nechce spravne ist, uz som s tym stravil cely vecer.
Teda chcem aby napr mi potom vzniklo:
1,2,3, NoveCislo, 4, 5, 6, 7, 8, 9, 10
Chapete o co mi ide?
Treba tam aj niekde mallocnut jedno miesto.
Prosim, ak viete, poradte mi.
Dakujem velmi pekne.
Příspěvky odeslané z IP adresy 85.135.133.–
peter99