0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 40
|
|||||||||||
1 | |||||||||||
const char не инициализируется при объявлении13.09.2013, 17:04. Показов 2457. Ответов 20
Метки нет (Все метки)
Доброго времени суток.
Прошу помощи есть код
filename не инициализируется. Пробовала так:
сname принимает значение строки f, filename так и остается не инициализорванным и вообще в отладчике пишет: filename CXX0017: ошибка: не найден символ "filename"
0
|
13.09.2013, 17:04 | |
Ответы с готовыми решениями:
20
Изменяется ли адрес или значение переменной при объявлении ее как const? Чем отличаются объявления const char* и const* char error: no matching function for call to `QObject::connect(QPushButton&, const char[10], QApplication*, const char[8])' no matching function for call to 'QObject::connect(QCommandLinkButton*, const char*, cNetwork*, const char*) |
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
13.09.2013, 17:13 | 3 |
А в чем проблема, что не позволяет вместо filename использовать f.c_str() ?
1
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 40
|
|
13.09.2013, 17:23 [ТС] | 4 |
0
|
Комп_Оратор)
|
||||||
13.09.2013, 18:01 | 6 | |||||
Всё работает и так:
1
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 40
|
|
13.09.2013, 18:37 [ТС] | 7 |
видела в отладчике. но уже все решилось. я просто не использую переменную
хотя почему не работает в релиз не понятно
0
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 40
|
|
13.09.2013, 19:18 [ТС] | 9 |
да. не открывался файл в cvLoadImage/ именно в Release. (это open cv)
я пыталась понять в чем дело. в отладчике только эта переменная не показывалась
0
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 40
|
|
13.09.2013, 20:19 [ТС] | 11 |
0
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 40
|
||||||
13.09.2013, 20:44 [ТС] | 13 | |||||
Ну вообще я думала, что там ничего не будет показывать. Но показывает все тоже самое что и в debug...
Добавлено через 51 секунду За исключением, что в дебаге ошибка не вылазила и константа прекрасно инициализировалась. все осталольное также Добавлено через 15 минут Теперь новый косяк
Добавлено через 16 секунд тоже в release Добавлено через 2 минуты соответственно программа в режиме release не работает. только в режиме debug.
0
|
Комп_Оратор)
|
||||||
13.09.2013, 21:01 | 14 | |||||
Результат работы этой строки:
можно увидеть хоть так:
0
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 40
|
||||||
13.09.2013, 21:34 [ТС] | 15 | |||||
Почему не видно? все видно, после того как я сделала так:
у меня теперь счетчик в другом месте программы не инициализируется. т.е. программа никогда не заходит в него в релиз, а в дебаг заходит отлично
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
13.09.2013, 21:41 | 16 |
В релиз не используйте отладчик. Он не для релиз предназначен. То что не заходит, значит так компилятор в релиз код оптимизировал, это не значит, что неправильно работает. Не прыгайте с дебаг в релиз, это ничего не даст.
0
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||||||
13.09.2013, 22:11 | 17 | |||||
Так вообще никогда не нужно делать. c_str() возвращает указатель на данные используемые непосредственно строкой f, следовательно любое изменение содержимого этой строки может привести к тому, что указатель filename станет недействительным. Простой пример, который выглядит вполне корректным
2
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 40
|
||||||
13.09.2013, 23:15 [ТС] | 18 | |||||
Спасибо. Буду знать.
А что на счет вот этого? Почему так может быть ведь программа не работает в релиз
countTemp сразу принимает очень большое значение и соответственно дальше алгоритм не проходит и игнорит весь код в цикле
0
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
|
13.09.2013, 23:58 | 20 |
Ну, сразу countTemp очень большое значение принимать не может... если цикл действительно не выполняется ни разу, то NumberTemp(надеюсь эта переменная типа int) <= 0, и проблему нужно искать совсем в другом месте...
0
|
13.09.2013, 23:58 | |
13.09.2013, 23:58 | |
Помогаю со студенческими работами здесь
20
CONST_RETURN char *__cdecl strstr (const char *_Str, const char *_SubStr) Если словарь при объявлении инициализируется, его начальная емкость становится равным инициализируемому? invalid operands of types 'const char*' and 'const char [8]' to binary 'operator+' Warring: char * convert to const char * при трансляции Странное поведение при разном объявлении строки char* Error C2440: return: невозможно преобразовать "const char *" в "const char (&)[6]" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |