[MSVC++] std::string& i char*

0

Pewnie zadaję głupie pytanie. Jak rzutować typ std::string& na char* ?
Mam nagłówek funkcji:

bool LoadTGA(TexData*, char*);

Jeśli z innej funkcji w której mam zadeklarowaną zmienną

std::string& name

Próbuję wywołać

LoadTGA(TexData*, name);

Kompilator zwraca błąd:
TextureMgr.cpp(115) : error C2664: 'LoadTGA' : cannot convert parameter 2 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char *'

0

Zdawa mi się, że std::string ma metodę c_str() pozwalającą na konwertowanie go na NTS`y (null-terminated string), np:

std::string str;
/*(...)*/
const char* text = str.c_str();
0

Wielkie dzięki :)
Twoja odpowiedź naprowadziła mnie na prawidłowy tor :)
Trzeba zrobić tak

char* stdstr2nts(std::string& stdstr){
char* str;
memcpy(str, stdstr.c_str(), stdstr.size);
return str;
};

// [glowa] Puknij się. Gdzie przydzielasz pamięć dla str?
// Nie memcpy(), tylko strdup() lub malloc()/new + strcpy() [mf]

1 użytkowników online, w tym zalogowanych: 0, gości: 1