![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mclight |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 6.7.2005 Где: Baku, Azerbaijan Репутация: нет Всего: 2 |
народ помогите!
получается - Cannot convert 'char *' to 'char[]' --------------------
Как я решал подводные камни Cakephp и не только |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
mclight, Где получается?
Компилер обычно строку называет Делай так:
|
|||
|
||||
| mclight |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 6.7.2005 Где: Baku, Azerbaijan Репутация: нет Всего: 2 |
19
Добавлено @ 22:54 19 --------------------
Как я решал подводные камни Cakephp и не только |
|||
|
||||
| Ni@m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 11.3.2004 Где: почти Киев Репутация: 0 Всего: 6 |
А так не годится? --------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше. |
|||
|
||||
| mclight |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 6.7.2005 Где: Baku, Azerbaijan Репутация: нет Всего: 2 |
пытался
скорее всего это и есть правильное решение. видимо я структуру не правильно настроил. что-ж Большое спасибо! --------------------
Как я решал подводные камни Cakephp и не только |
|||
|
||||
| LPBOY |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
mclight, в чем дело? А ведь я тебе где-то в старых темах написал ее решение. Что не подошло? По поводу строки 19: ты пытаешься присвоить один массив другому, а это в С++ сделать нельзя . Наверно надо ипользовать цикл (или memmove).
Кстати ты мешаешь в коде вызовы функций WinAPI с древними библиотечными функциями Борланда, как то странно получается... --------------------
Каждый человек по-своему прав, а по-моему нет... |
||||
|
|||||
| Ni@m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 11.3.2004 Где: почти Киев Репутация: 0 Всего: 6 |
Цитата
ты пытаешься присвоить один массив другому Цитата Наверно надо ипользовать цикл Часто бывает, что функции возвращают указатель на выделенную память, не так как strcat, а как realloc. Обязательно надо высвободить память. Утечки сейчас никого не красят. Но мне непонятно, как в этом случае пройтись циклом?? А почему нельзя присвоить один массив дркгому?? попробуй это:
Прошу прощения - предыдущий пост был моим. Забыл зарегаться. Это сообщение отредактировал(а) Ni@m - 1.8.2005, 11:37 --------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше. |
|||
|
||||
| LPBOY |
|
||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
По правилам С++ этого делать нельзя. Придумал не я, все претензии к Страуструпу (Вообще я говорю о массиве как о типе.) В твоем коде ты присваиваешь указателю b (а не массиву) адрес 3-го элемента массива a. Никакого присваивания одного массива другому тут нет. Массив и указатель это разные вещи. У mclight'а был один массив внутри структуры dirent, который объявлен след. образом (в dirent.h):
Затем он создал второй char dirname[] и попытался скопировать в него массив d_name. Самый естесственный способ сделать это с помощью цикла. Хотя вместо
проще было бы написать сразу
промежуточные массивы тут даже не нужны...
А в чем проблема? --------------------
Каждый человек по-своему прав, а по-моему нет... |
||||||||||
|
|||||||||||
| RTcoder |
|
|||
|
Unregistered |
можно и так если использовать только приметивы с:
конечно лучше не мешать приметивы разных в концептуальном плане библиотек - а то программа может получиться больших размеров - оптимально использовать либо приметивы самого языка(string.h, cstring....), либо функции и методы свойственные для конкретной реализации библиотеки (MFC, VCL), или же приметивы самой ОС (API) |
|||
|
||||
| LPBOY |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
Согласен, но тут есть несколько моментов 1) Точнее будет так:
2) Этот частный случай работает только для массивов, содержащих asciiz-строки. 3) Внутри функции strcpy все равно крутится все тот же цикл P.S. использовать макрос TEXT для указателей нет никакого смысла TEXT(ent->d_name). Это приведет к ошибке компиляции если определен Юникод. Это сообщение отредактировал(а) LPBOY - 1.8.2005, 14:35 --------------------
Каждый человек по-своему прав, а по-моему нет... |
||||
|
|||||
| mclight |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 6.7.2005 Где: Baku, Azerbaijan Репутация: нет Всего: 2 |
спасибо. а твой иходник LPBoy тогда не пошел.
Он выводил одну папку. и все. а мне надо было все. я не стал дальше разбираться. что-там к чему. времени не было. но все равно огромное спасибо! Это сообщение отредактировал(а) mclight - 3.8.2005, 01:56 --------------------
Как я решал подводные камни Cakephp и не только |
|||
|
||||
| mclight |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 6.7.2005 Где: Baku, Azerbaijan Репутация: нет Всего: 2 |
Народ конечно извините. я Вас совсем замучил. получилось все!
дело было не в промежеточных массивах. все что вы предлагали я и раньше делал. вот только программа выводила только первую папку. ане все.
исправил на
правда совсем не понял почему так получилось. прежде чем открыть след папку выводится сообщение об ошибке если написать
то перед каждом открытием новой папки будет выводиться слово "ошибка", затем название папки. конечно очень хочется узнать в чем тут проблема. Это сообщение отредактировал(а) mclight - 3.8.2005, 02:11 --------------------
Как я решал подводные камни Cakephp и не только |
||||||
|
|||||||
| mclight |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 6.7.2005 Где: Baku, Azerbaijan Репутация: нет Всего: 2 |
можешь объяснить что и где? --------------------
Как я решал подводные камни Cakephp и не только |
|||
|
||||
| LPBOY |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
Я не телепат
Это не ошибка, просто обычно придерживаются какого-то одного стиля. Функция is_dir написана средствами WinAPI (т.е. ориентирована на Windows), а в остальной программе используются функции библиотеки борланда (ориентированной на MS-DOS).
Не, мой исходник выводит ВСЕ папки и файлы. Не знаю почему у тебя выводит только одну... Может ты имя папки задавал больше 8-ми символов, с такими именами функции MS-DOS не работают. Попробуй с папкой с коротким именем или если имя длинное, например program files, то надо писать так progra~1. И слэш надо использовать не одинарный, а двойной. Например: c:\\dir --------------------
Каждый человек по-своему прав, а по-моему нет... |
||||||
|
|||||||
| mclight |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 6.7.2005 Где: Baku, Azerbaijan Репутация: нет Всего: 2 |
а именно строка 28 Это сообщение отредактировал(а) mclight - 3.8.2005, 03:38 --------------------
Как я решал подводные камни Cakephp и не только |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |