-3
不知道为什么,但我的函数不希望返回值。 这是我如何使用这个功能:C函数不返回列表值
struct element_listy *pakiet = NULL, *wsk = NULL;
pakiet = dodaj_ramke(pakiet, &frame);
这是功能:
struct element_listy* dodaj_ramke (struct element_listy *wskazanyelement, struct ramka *ramka){
struct element_listy *wsk, *nowy;
if (wskazanyelement == NULL) {
wskazanyelement = (struct element_listy*)malloc(sizeof(struct element_listy)); //rezerwacja pamięci dla listy
wskazanyelement->ramka=(struct ramka*)malloc(sizeof(struct ramka)); //zalookowanie pamieci dla elementu listy
wskazanyelement->first = wskazanyelement; //Pierwszy element to lista obecna
wskazanyelement->next = NULL; // Drugi element nie istnieje
wskazanyelement->previous = wskazanyelement; //wskazanyelement->first->ramka; // poprzedni element to wskazanie na liste obecną
memcpy(wskazanyelement->first->ramka, ramka, sizeof(struct ramka)); //skopiowanie pod pierwszy element listy
return wskazanyelement; //zwróć liste
} else {
wsk = wskazanyelement; //pomocnicza lista dla listy
while (wsk->next != NULL) { //przechodzimy na koniec listy
wsk = wsk->next;
}
nowy = (struct element_listy*)malloc(sizeof(struct element_listy)); //lookowanie pamieci dla listy
nowy->ramka=(struct ramka*)malloc(sizeof(struct ramka)); //zalookowanie wskazanie na elementy listy
memcpy(nowy->ramka, ramka, sizeof(struct ramka)); //kopiowanie pod element listy
nowy->first = wskazanyelement; //pierwszy element pomocniczej to pobrana ramka
wsk->next = nowy; //następny element
wsk->previous = wsk;
return wskazanyelement;
}
}
在debuger我看到返回wskazanyelement具有ramka复制值。但是,当功能结束,我去下一步pakiet是空的。为什么?我在函数结尾处返回复制的数据。
你应该通过指针或引用发送wskazanyelement。在你能否发送它的副本。功能应该是'结构element_listy * dodaj_ramke(结构element_listy * wskazanyelement,结构ramka * ramka)' –
并请使其更容易,尝试提交你的代码中英文注释和名称,所以我们可以跟进 –
什么?我看到了这样的第一次。并且编译器返回“expect; or,or)”的错误。 我认为这一定是别的,因为在虚拟机上,相同的代码可以解决问题。 –