Witam. Mój ogólny problem: jak najlepiej przenieść parametry referencyjne (var) z Pascala do języka C?
Mam na przykład taką procedurę:
type
tablica = array[1..1000] of integer;
procedure ZnajdzWszystkieWazneElementy(var tab : tablica; var elem : integer; var elem2 : integer);
begin
elem := ZnajdzJakisWaznyElement(tab);
elem2 := ZnajdzJakisInnyWaznyElement(tab);
end;
I teraz spróbuję ją przenieść do C:
void znajdz_wszystkie_wazne_elementy(int * tablica, int * elem, int * elem2) {
elem = znajdz_jakis_wazny_element(tab);
elem2 = znajdz_jakis_inny_wazny_element(tab);
}
Zakładam oczywiście, że funkcja "znajdz_jakis_wazny_element" zwraca wskaźnik do tego elementu.
Widzę główny problem: jeśli zmienię wyszukany element tablicy, to i zmienna globalna elem
się zmieni. A nie mogę przecież stworzyć nowej zmiennej w funkcji, ponieważ zniknie razem z końcem wykonania funkcji. Więc teraz dwa pytania szczegółowe:
- Czy to jest jedyne podejście?
- Czy to jest najlepsze podejście?