Debajo del código esperado para imprimir "kevin" Pero, está imprimiendo valor de basura. He revisado el depurador. El puntero devuelto por la llamada "operador char *" no es válido. ¿Alguna idea?"operador char *" problema
class Wrapper
{
private:
char* _data;
public:
Wrapper(const char* input)
{
int length = strlen(input) + 1;
_data = new char[length];
strcpy_s(_data, length, input);
}
~Wrapper()
{
delete[] _data;
}
operator char*()
{
return _data;
}
};
int main()
{
char* username = Wrapper("kevin");
printf(username);
return 0;
}
Mi primera sugerencia sería usar std :: string ya que obviamente está usando C++. –
¿por qué editó la etiqueta de punteros que agregué? – James
Tenga en cuenta que generalmente debe evitar las conversiones implícitas. (Y, por supuesto, use 'std :: vector', o' std :: string', etc.) – GManNickG