Re[3]: Копирование char* в другой char*.
От: Sophist Россия http://freelearner-ru.blogspot.com
Дата: 19.04.08 07:28
Оценка:
Здравствуйте, FelixK, Вы писали:

FK>Я попробывал использовать malloc но компелятор выдал ошибку:


FK>
FK>error C2440: '=' : cannot convert from 'void *' to 'char *'
FK>


FK>Вот код:

FK>
FK>char * strPath = NULL;
FK>
FK>


Нужно явно преобразовать тип:

strPath = (char*)malloc(strlen(argv[2]));

FK> А когда попробывал второй вариант то получил:


FK>
FK>error C2440: '=' : cannot convert from 'std::basic_string<_Elem,_Traits,_Ax>' to 'char *'
FK>


FK>Вот код:

FK>
FK>char * strPath = NULL;
FK>strPath = std::string(argv[2]);
FK>


Разумеется, нельзя присвоить массиву char значение типа string. Нужно либо объявить strPath как string, либо воспользоваться методом c_str(), который возвращает как раз указатель на char:

strPath = std::string(argv[2]).c_str();
Мир не просто сложнее, чем мы себе представляем, -- он сложнее, чем мы можем себе представить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.