Piszę mały program w języku C, aby wykonać kilka operacji na liczbach i musi on ominąć tablice między funkcjami. Funkcje powinny akceptować i zwracać wskaźniki, prawda?Czy wskaźniki i tablice są różne w C?
Na przykład, (wiem, że to nie może być najbardziej efektywne rzecz):
int* reverse(int* l, int len) {
int* reversed = malloc(sizeof(*reversed)*len);
int i, j;
for (i = 0, j = len-1; i < len; i++, j--) {
reversed[j] = l[i];
}
return reversed;
}
używam wskazówek prawda?
Twój przykład wygląda w porządku. Szerszy temat różnicy między tablicami i wskaźnikami został już wcześniej omawiany, na przykład na stronie http://stackoverflow.com/questions/660752/pointer-vs-array-in-c-non-trivial-difference. –
(To nie kwalifikuje się jako odpowiedź) Tablica i algebra wskaźnik różnią się tylko w tym sizeof (nazwa_elementu) zwraca liczbę elementów nazwa_tabeli, a nie rozmiar tablicy w bajtach. – jpinto3912