Форум программистов, компьютерный форум CyberForum.ru

Цикл и переменные - C++

Восстановить пароль Регистрация
 
Ralph
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 6
01.03.2011, 13:42     Цикл и переменные #1
Добрый день.Никак не могу решить проблему с циклом.Процесс успешно создает поток,в котором выполняется следующий код :

j=(unsigned long)sizeof(struct thread_struct);

for(i=0,free=NULL,THREAD=thread_start;i<thread_size;i++,THREAD+=j) { printf("%d %d +%d=%d(%d) %d==%d",i,thread_size,j,THREAD,free,THREAD->ID,pthread_self());if (pthread_equal(THREAD->ID,pthread_self())!=0) {free=THREAD;break;} }

в результате работы которого получаю

0 20 +64=10556928(0) 10530368==10530368
1 20 +64=10561024(0) 0==10530368
...
21 20 +64=10642944(0) 0==10530368
22 20 +64=10647040(0) 0==10530368

то есть мало того,что приращение указателя идет с шагом 4096 вместо 64,так еще и условие окончания цикла for не срабатывает и код бодренько отрабатывает до SIGSEGV
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2011, 13:42     Цикл и переменные
Посмотрите здесь:

Переменные,значение функции,вспомогательные переменные. C++
C++ Цикл for/Цикл while Помогите срочно пожалуйста...
C++ Bool переменные - как записать таблицы истинности функции, используя цикл
C++ Создать бинарное дерево, по правой ветке - переменные типа инт, по левой - 2 переменные типа чар
C++ Цикл: цикл for вообще никак не воспринимается транслятором
C++ Почему цикл на при 1 уходит в бесконечный цикл?
C++ Создать программу обработки массивов структур используя структурные переменные и переменные типа объеденения
Задание на цикл с параметром и цикл с постусловием C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
01.03.2011, 14:31     Цикл и переменные #2
Цитата Сообщение от Ralph Посмотреть сообщение
то есть мало того,что приращение указателя идет с шагом 4096 вместо 64
это особенности адресной арифметики, запись "указатель на объект"+n фактически означает что адрес в указателе увеличится на число равное n*"размер самого объекта"
Цитата Сообщение от Ralph Посмотреть сообщение
еще и условие окончания цикла for не срабатывает
что-то напутали в условии, вообще дополнительные инициализации в цикле хоть и допускаются, но лучше ими не злоупотреблять.
Yandex
Объявления
01.03.2011, 14:31     Цикл и переменные
Ответ Создать тему
Опции темы

Текущее время: 14:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru