У меня есть следующие функции в C++Как вернуть символ * из функции в C++
char* Test::convertToSHA(const char* cc) {
const char* salt ="sh$^$#@!&[email protected]@@@bagg=shjgvshvcbschj";
time_t currentTime;
time(¤tTime);
CCString startTimeString;
startTimeString.createWithFormat("%d", currentTime);
std::string s = cc;
s += startTimeString.getCString();
s += salt;
char *str = new char[strlen(s.c_str()) + 1];
int length=strlen(str);
unsigned char hash[length*2];
char hexstring[41];
sha1::calc(str,length,hash);
sha1::toHexString(hash, hexstring);
return hexstring;
}
И в вызове я использую
char* output=NULL;
output= Test::convertToSHA("hello");
Это вызывает мой код аварии. Есть ли проблема с возвращением строки? Как я могу вернуться из этой функции?
Это должно действительно вернуть строку 'std :: string'. – chris
НЕ возвращать переменные стека. Либо «новая шестнадцатеричная строка», либо позвольте вызывающему абоненту выделить память и передать ее в «convertToSHA». Но лучший способ - вернуть std :: string (или вернуть по ссылке), поскольку вы используете C++. – Mine
Можете ли, пожалуйста, показать мне, как? – AndroidDev