Witam,
Argumentem mojej funkcji jest char *a, czyli tablica znaków. Jak sprawdzić w ciele funkcji, czy podanym argumentem nie jest tablica większa niż 28?
sizeof(a) zwróci mi chyba rozmiar wskaźnika, a nie tablicy.
Jest to w ogóle możliwe?
Witam,
Argumentem mojej funkcji jest char *a, czyli tablica znaków. Jak sprawdzić w ciele funkcji, czy podanym argumentem nie jest tablica większa niż 28?
sizeof(a) zwróci mi chyba rozmiar wskaźnika, a nie tablicy.
Jest to w ogóle możliwe?
Nie można sprawdzać rozmiaru tablicy jakiejkolwiek. Możesz za to to zrobić w typie string. Ale to już nie tablica tylko zmienna.
Czyli dokonać konwersji do typu String i sprawdzić ile jest znaków?
Zdecyduj się, albo chcesz sprawdzić rozmiar tablicy, albo długość stringa. W pierwszym przypadku, jak sam zauważyłeś, ze wskaźnika nie wyciągniesz informacji o rozmiarze, więc wartość tą musisz przekazać w parametrze funkcji. Jeśli chodzi o długość stringa, użyj po prostu strlen.
Długość łańcucha znaków sprawdzisz przez strlen(). @up napisał prawdę ale trochę przekombinował (mając na myśli długość stringa miał na myśli długość łańcucha znaków).
Czyli nie da się sprawdzić ile elementów ma tablica char*?
a jesli nie konczy sie zerem to w funkcji powinienes przekazywac albo dwa parametry: dlugosc, bufor znakow albo strukture z takimi polami albo po prostu klase w stylu vector<char>