Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с указателем

249
12 июня 2006 года
DissDoc
639 / / 01.10.2004
Ситуация вот какая. Есть у меня значит функция, а в ней мне нужно сравнивать значения. Вот пример
Код:
bool MyFunc(МОЯ_ПЕРЕМЕННАЯ &test)
{
//test - массив
for (int i=0; i < test.GetSize(); i++)
{
if (test.GetAt(i) == "yes")
point++;
}

return TRUE;
}


Размер у массива какой-то непонятный.. постоянно одно и тоже число большее 34000... Хотя передаю всего два значения...
У меня вообще нормально все с функцией????
242
12 июня 2006 года
Оlga
2.2K / / 04.02.2006
попробуй просто :
bool MyFunc(МОЯ_ПЕРЕМЕННАЯ test[])
273
12 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
Функция чего-то неправильная. Вот так должно быть:
Код:
[LEFT]bool MyFunc(МОЯ_ПЕРЕМЕННАЯ *test)
{
//test - массив
for (int i=0; i < test->GetSize(); i++)
{
if (test->GetAt(i) == "yes")
point++; //чего за point???
}

return TRUE;
}[/LEFT]
249
12 июня 2006 года
DissDoc
639 / / 01.10.2004
point - то инт (это все верно)
А вот функция.... Просто вид функции именно такой. Я модуль пишу под одну систему. И функция именно так объявлена. А в массиве этом находится список имен документов.. А больше никак нельзя?
273
12 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=DissDoc]point - то инт (это все верно)
А вот функция.... Просто вид функции именно такой. Я модуль пишу под одну систему. И функция именно так объявлена. А в массиве этом находится список имен документов.. А больше никак нельзя?[/quote]
Стоп, в функцию MyFunc ты хочешь передавать массив или объект, который содержит массив???
249
12 июня 2006 года
DissDoc
639 / / 01.10.2004
ааа.. тут вот какое дело... Я не знаю что конкретно в функцию передается... Стало быть, если вы спрашиваете, наверное все-таки объект
9.4K
12 июня 2006 года
_nоrth_
99 / / 24.04.2006
point инициализирован нулем?
273
12 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=_nоrth_]point инициализирован нулем?[/quote]
point по-моему совсем не в тему здесь.... Всё таки нужно использовать вариант с указанием оператора указателя:
Код:
[LEFT]bool MyFunc(МОЯ_ПЕРЕМЕННАЯ *test)
{
//test - массив
for (int i=0; i < test->GetSize(); i++)
{
if (test->GetAt(i) == "yes")[/LEFT]
point++
[LEFT]}[/LEFT]
 
[LEFT]return TRUE;
}[/LEFT]
249
12 июня 2006 года
DissDoc
639 / / 01.10.2004
point - не трогайте вообще! С ним все в порядке.
А вот то что нужно использовать вариант с указателем оператора - я тоже к этому склонялся. Пока при выполнении программы не вывалилась ошибка вида "память не может быть read и т.п.", точно такая же короче ошибка как и при использовании &.
Тогда получается дело не у меня, а у разработчиков системы, т.е. в шаблоне функции..
9.4K
12 июня 2006 года
_nоrth_
99 / / 24.04.2006
[QUOTE=DissDoc]point - не трогайте вообще! С ним все в порядке.
А вот то что нужно использовать вариант с указателем оператора - я тоже к этому склонялся. Пока при выполнении программы не вывалилась ошибка вида "память не может быть read и т.п.", точно такая же короче ошибка как и при использовании &.
Тогда получается дело не у меня, а у разработчиков системы, т.е. в шаблоне функции..[/QUOTE]Успокойся. Никто твой point не трогает. Просто в C++ считается хорошим тоном инициализировать переменные, перед их использованием.

На счет указателя. Если в прототипе ф-ии указана ссылка, тогда нужно использовать ссылку. Если указатель, тогда указатель.
249
13 июня 2006 года
DissDoc
639 / / 01.10.2004
Ребята. все в порядке. Я перечитал всю литературу, которую только смог найти по ссылкам и указателям. Мой код верный (как и ваш впринципе тоже). Кстати, & и * взаимодополняемы. А ошибка была в том, что прототип функции в системе был, но он не работал, т.е. ошибка не у меня была, а у программы. под которую я писал модуль ))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог