[C++] Funkcja zwracająca (char*)& ?
Ostatnio zmodyfikowano 2014-05-19 22:30
anieszka Temat założony przez niniejszego użytkownika |
[C++] Funkcja zwracająca (char*)& ? » 2014-05-19 22:09:33 Mam taki problem miałam funkcję (operującą na drzewie r-b) gdzie (double wartosc; )
double& znajdz_wartosc(char *klucz)
i wywoływanie w ten sposób: mojastruktura.znajdz_wartosc("abc")->wartosc=3.5;
co od razu przypisywało. Teraz muszę tą funkcję zmodyfikowac aby wartosc była typu char* wartosc; czy ten zapis:
(char*)& znajdz_wartosc(char *klucz) jest prawidłowy?
i wtedy "wywołanie" w ten sposób? strcpy((mojastruktura.znajdz_wartosc("abc")),"wartosc" );
Pewnie najłatwiej byłoby użyć stringa, ale mam takie narzucone ograniczenia że nie mogę, jedynie <cstring>
|
|
Monika90 |
» 2014-05-19 22:30:19 (char*)& znajdz_wartosc(char *klucz) |
zdecydowanie nie jest prawidłowy, deklaracja powinna być taka char * znajdz_wartosc( char * klucz ); i wtedy da się używać tak jak chcesz: strcpy(( mojastruktura.znajdz_wartosc( "abc" ) ), "wartosc" ); pod warunkiem, że zwrócony wskaźnik będzie wskazywał na wystarczająco dużą tablicę znaków, czyli wartościami w drzewie bedą musiały być albo tablice znaków o z góry ustalonym rozmiarze, np char wartosc[ 20 ]; , albo wskaźniki do dynamicznie alokowanych tablic o odpowiednio dużym rozmiarze. Jakby nie było, przy użyciu strcpy musisz uważać by nie wyjść poza zakres tablicy docelowej. |
|
« 1 » |