Napisz funkcję, która wywołana jest z dwoma argumentami. Pierwszy to wskaźnik do tablicy znaków, w której jest już jakiś C-string. Drugi to rozmiar tej tablicy.
Dobrze tak: ?
char * funkcja (char * string, int rozmiar);
Napisz funkcję, która wywołana jest z dwoma argumentami. Pierwszy to wskaźnik do tablicy znaków, w której jest już jakiś C-string. Drugi to rozmiar tej tablicy.
Dobrze tak: ?
char * funkcja (char * string, int rozmiar);
Może być, ale jak masz po drodze . Dlaczego zwracany typ to using namespace std;
lub using std::string
to się nie skompilujechar*
i dlaczego nie przyjmujesz char const*
? Jak specyfikacja nie mówi, że bufor może być zmieniony to nie powinieneś tego zakładać.
a jeszcze mam takie pytanie, tablica wskaźników to:
int * tab[]
a wskaźnik do tablicy to:
int *wsk
?
nowicjusz35 napisał(a):
a jeszcze mam takie pytanie, tablica wskaźników to:
int * tab[]
Tak
nowicjusz35 napisał(a):
a wskaźnik do tablicy to:
int *wsk
?
Nie. To jest wskaźnik naint
bądź pierwszy element tablicyint
ów.
Wskaźnik na tablicę to
int (*tab)[10]
ale tablicę można odebrać jako wskaźnik to mój zapis się nie nadaję ? Chodzi mi o zapis jakby to było w deklaracji funkcji.
Tablica może być niejawnie przekonwertowana do wskaźnika na jej pierwszy element. Wskaźnik na tablicę i wskaźnik na element to różne rzeczy.
int (*tab)[10]
czyli to oznacza wskaźnik do 10 elementowej tablicy czy do 10 elementu tablicy?
Do 10-elementowej tablicy. Już któryś raz polecam cdecl.org, tam mógłbyś sobie to sam sprawdzić ;)
http://cdecl.ridiculousfish.com/?q=int+%28*tab%29[10]
Jeszcze raz, jak mam:
int (*tab)[10]
i
int *tab
to i tak jako argument podam tablicę to będzie to zerowy element.
Więc nie bardzo rozumiem co miałeś na myśli pisząć: "Wskaźnik na tablicę i wskaźnik na element to różne rzeczy."
Gdzie ten argument podasz? Tablica może być niejawnie konwertowana na wskaźnik na jej pierwszy element. Wskaźnik na tablicę nie może, bo to różne rzeczy.