Mantrap.
Вот, собственно над чем воюю третюю ночь.
Подскажите, где и что не так ?
Программа работает с двусвязным списком.
Одна и та же ошибка во всех процедурах.

Подскажите, где и что не так ?
Программа работает с двусвязным списком.
Одна и та же ошибка во всех процедурах.

Вообще пишет, что у тебя какие-то указатели не совместимы
Это по идее, начало самое, и первая процедура к которой он придирается.
#include <stdio.h>
#include <stdlib.h>
struct el{
struct el *pirmyn; //вперёд
int duom;
struct el *atgal; // назад
};
int veiksmas=0;
int duomuo, i, pozicija, duom, pradzia, pabaiga;
void Sukurti_sar ( struct el * , struct el * ); // создать список
void Spausdinti_sar ( struct el * ); // его отпечатать
void Iterpti ( struct el *pradzia, struct el *pabaiga, int ); // вставить элемент перед указаным
void Naikinti_sar ( struct el *pradzia , struct el *pabaiga ); // удалить список
int main()
{
struct el *pradzia, *pabaiga;
int sk;
Sukurti_sar ( &pradzia, &pabaiga );
Spausdinti_sar ( pradzia );
puts ("<-------------------------------------------->");
puts ("Перед которым будем добавлять ?");
puts ("<-------------------------------------------->");
scanf ("%d", &sk);
Iterpti (&pradzia, &pabaiga, sk);
Spausdinti_sar ( pradzia );
Naikinti_sar ( &pradzia, &pabaiga );
return 0; /* tik Windows */
}
void Sukurti_sar (struct el *pradzia,struct el *pabaiga)
{
struct el *elem;
int reiksme;
puts("Iveskite saraso elementus.Noredami baigti,iveskite 0"); //ввести числа, 0 - закончить
pradzia=NULL;
pabaiga=NULL;
scanf("%d",&reiksme);
while (reiksme !=0)
{
if (pradzia==NULL)
{
elem=(struct el *) malloc(sizeof(struct el));
elem->duom=reiksme;
elem->pirmyn=NULL;
elem->atgal=NULL;
pradzia=elem;
pabaiga=elem;
}
else
{
elem=(struct el *) malloc(sizeof(struct el));
elem->duom=reiksme;
elem->atgal=pabaiga;
elem->pirmyn=NULL;
pabaiga->pirmyn=elem;
pabaiga=elem;
}
scanf("%d",&reiksme);
}
}
//========================================================
struct el *pradzia, *pabaiga;
Sukurti_sar ( &pradzia, &pabaiga ); - тут передается адрес pradzia.
Лечение:
void Sukurti_sar ( struct &el * , struct &el * );
Остальные аналогично
void Sukurti_sar ( struct el * , struct el * ); // создать список
void Spausdinti_sar ( struct el * ); // его отпечатать
void Iterpti ( struct el *pradzia, struct el *pabaiga, int ); // вставить элемент перед указаным
void Naikinti_sar ( struct el *pradzia , struct el *pabaiga ); // удалить список
int main()
{
struct el *pradzia, *pabaiga;
int sk;
Sukurti_sar ( pradzia, pabaiga );
Spausdinti_sar ( pradzia );
дальше аналогично.
gcc молча проглотил
Можно я тебе на ю-мыл всю прогу, а ?
Было бы идеально до часа по московскому.
Что ж, у меня ещё вся ночь впереди.
Большое спасибо за помощь ! :-)
попробуй поиграться с аргументами, что-то на мой взгляд неправильно
void Sukurti_sar ( struct &el * , struct &el * );
void Sukurti_sar ( struct &el, struct &el);
void Sukurti_sar ( &el, &el );
void Sukurti_sar ( struct el** , struct el** );
Вопсчем такс - собсно el у нас тип имеет struct.
void Sukurti_sar ( el *value1, el *value2);
вызываем как
void Sukurti_sar ( &val1, &val2 );
полный код
typedef struct{
struct el *pirmyn;
int duom;
struct el *atgal;
} el;
int veiksmas=0;
int duomuo, i, pozicija, duom, pradzia, pabaiga;
void Sukurti_sar(el** pradzia, el** pabaiga)
{
el* elem;
int reiksme;
puts("Iveskite saraso elementus.Noredami baigti,iveskite 0");
pradzia=NULL;
pabaiga=NULL;
scanf("%d",&reiksme);
while (reiksme !=0)
{
if (pradzia==NULL)
{
elem=(el*) malloc(sizeof(el));
elem->duom=reiksme;
elem->pirmyn=NULL;
elem->atgal=NULL;
*pradzia=elem;
*pabaiga=elem;
}
else
{
elem=(el *) malloc(sizeof(el));
elem->duom=reiksme;
elem->atgal=(struct el*)*pabaiga;
elem->pirmyn=NULL;
(*pabaiga)->pirmyn=(struct el*)elem;
*pabaiga=elem;
}
scanf("%d",&reiksme);
}
}
typedef struct{
struct el *pirmyn;
int duom;
struct el *atgal;
} el;