Непонятная ошибка: request for member 'length' in 'email', which is of non-class type 'int*'

170
16 августа 2017, 19:13

Вот мой код:

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);
}

Я получаю при компиляции ошибки (добавил в код как комментарий). Что здесь не так?

Answer 1

С какого языка перебрались на C++?

Указатель ничего не знает о том, на сколько элементов он указывает, так что длину массива надо передавать вместе с указателем.

Но что вы, собственно, хотите сделать? Мне вообще непонятна цель ваших телодвижений: создать массив char, обрубить int до char и запихать это зачем-то в строку, еще и вызвав утечку памяти.

Изложите свою цель, потому что можно только догадываться, что вы хотите... И делаете это ужасно неверно.

READ ALSO
Есть ли утечка памяти в коде

Есть ли утечка памяти в коде

Есть участок кода в программе:

181
Почему в С функции пишут под main()? [требует правки]

Почему в С функции пишут под main()? [требует правки]

В С функции пишут под main() и потом приходится выносить прототипы функцийХотя в Паскале, да и в С можно, писать над main() и прототипы не понадобятся

170
Сборка .deb пакета из qt приложения

Сборка .deb пакета из qt приложения

Нужно собратьdeb пакет

391