Вот мой код:
std::string resolve_email(int *email){
char* c = new char[email.length() + 1];//error: request for member 'length' in 'email', which is of non-class type 'int*'
for(int i = 0; i < email.length(); i++){
c[i] = email[i];//error: request for member 'length' in 'email', which is of non-class type 'int*'
}
return std::string(c);
}
Я получаю при компиляции ошибки (добавил в код как комментарий). Что здесь не так?
С какого языка перебрались на C++?
Указатель ничего не знает о том, на сколько элементов он указывает, так что длину массива надо передавать вместе с указателем.
Но что вы, собственно, хотите сделать? Мне вообще непонятна цель ваших телодвижений: создать массив char
, обрубить int
до char
и запихать это зачем-то в строку, еще и вызвав утечку памяти.
Изложите свою цель, потому что можно только догадываться, что вы хотите... И делаете это ужасно неверно.
В С функции пишут под main() и потом приходится выносить прототипы функцийХотя в Паскале, да и в С можно, писать над main() и прототипы не понадобятся