Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подсобите с поинтерами / 14 сообщений из 14, страница 1 из 1
19.05.2006, 15:55
    #33739123
Arion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Что-то не как не въеду что за беда с этими указателями:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
time_t tm_now,pon;
tm *tm_mnnow,*mnpon;
mnpon=new tm;
tm_mnnow=new tm;

time(&tm_now);
tm_mnnow=localtime(&tm_now);

pon=tm_now- 86400 *(tm_mnnow->tm_wday- 1 );

mnpon=localtime(&pon);
//вот на этом моменте содержимое по указателю tm_mnnow становится равно mnpon, в чем дело? как этого избежать???
...
Рейтинг: 0 / 0
19.05.2006, 16:16
    #33739187
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Функция localtime возвращает указатель на свою структуру, одну единственную. Когда ты вызваешь ее, она переписывает значения структуры по новой. Так как структура одна, то указатели ссылаются на одно место, поэтому и значиния при их разыменовании одинаковые.
...
Рейтинг: 0 / 0
19.05.2006, 16:29
    #33739230
Arion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Ах-ха... дык... это как-то не очень красиво получается - нужно создавать отдельную структуру и в нее сохранять...
...
Рейтинг: 0 / 0
19.05.2006, 16:53
    #33739308
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
ArionАх-ха... дык... это как-то не очень красиво получается - нужно создавать отдельную структуру и в нее сохранять...

А ты вообще, что хочешь сделать? Странный код у тебя какой-то.
...
Рейтинг: 0 / 0
19.05.2006, 17:02
    #33739343
Arion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Вообще это определение понедельника текущей недели. Пока только понедельника :)
Кстати, почему-то строчки вида
pon=tm_now-86400*(tm_mnnow.tm_wday-1)-fmod(tm_now,86400)
не хватило, пришлось убавить еще 4 часа
получилось
pon=tm_now-86400*(tm_mnnow.tm_wday-1)-fmod(tm_now,86400)-3600*4;
Че-то не совсем понял куда делись 4 часа... Ну да и ладно, подгонка рулит :)
...
Рейтинг: 0 / 0
19.05.2006, 17:11
    #33739378
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Так повычитай tm_day*86400, tm_hour*3600, .... из полученной секунды сего времени и будет тебе 00:00 понедельника
...
Рейтинг: 0 / 0
19.05.2006, 17:12
    #33739380
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Arion
pon=tm_now-86400*(tm_mnnow.tm_wday-1)-fmod(tm_now,86400) -3600*4 ;
Че-то не совсем понял куда делись 4 часа... Ну да и ладно, подгонка рулит :)
...
Рейтинг: 0 / 0
19.05.2006, 17:17
    #33739387
Arion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Тоже вариант, только все-таки почему тем вариантом получается 04:00?
...
Рейтинг: 0 / 0
19.05.2006, 17:17
    #33739389
Arion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Akh

?
:)
...
Рейтинг: 0 / 0
19.05.2006, 17:27
    #33739432
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Функция localtime дополнительно производит корекцию времени по твоей временной зоне, которая у тебя установленна в виндах. Ты это учел?
...
Рейтинг: 0 / 0
19.05.2006, 17:41
    #33739480
Arion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
AkhФункция localtime дополнительно производит корекцию времени по твоей временной зоне, которая у тебя установленна в виндах. Ты это учел?
Да -3600*4 :)
Вот только у меня в виндах стоит +3:00, откуда 4?
...
Рейтинг: 0 / 0
19.05.2006, 17:52
    #33739516
Arion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Кстати, а как узнать установленый часовой пояс?
...
Рейтинг: 0 / 0
19.05.2006, 17:58
    #33739531
Dmitrii K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
ArionКстати, а как узнать установленый часовой пояс?
_timezone - Глобальная переменная из time.h
...
Рейтинг: 0 / 0
19.05.2006, 18:08
    #33739567
Arion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсобите с поинтерами
Dmitrii K. _timezone - Глобальная переменная из time.h
Спасибо!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подсобите с поинтерами / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]