0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
|
|||||||||||
1 | |||||||||||
Почему не работает ТАКАЯ конструкция функции time22.06.2014, 17:20. Показов 2955. Ответов 17
Метки нет (Все метки)
вот фрагмент кода.
0
|
22.06.2014, 17:20 | |
Ответы с готовыми решениями:
17
Массивы. Почему работает такая конструкция? HTML. Почему у меня не работает такая конструкция? Почему используется именно такая конструкция кода? Почему не проходит такая конструкция счетчика на странице HTML? |
Землянин
34 / 34 / 16
Регистрация: 15.01.2013
Сообщений: 312
|
||||||
22.06.2014, 17:38 | 2 | |||||
MMt,
1
|
31 / 31 / 32
Регистрация: 21.06.2014
Сообщений: 81
|
||||||
22.06.2014, 17:57 | 3 | |||||
Функция ctime возвращает char* (указатель на массив символов(строку)),поэтому тип переменной sss должен быть:
0
|
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
|
|||||||||||
22.06.2014, 18:58 [ТС] | 4 | ||||||||||
Pjeroo я пробовал переменной sss давать тип чар.
Почему с функцией
Добавлено через 39 секунд BatonPro, сделать sss как чаровский указатель?
0
|
Землянин
34 / 34 / 16
Регистрация: 15.01.2013
Сообщений: 312
|
||||||
22.06.2014, 19:11 | 5 | |||||
MMt,
0
|
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
|
|||||||||||
22.06.2014, 19:25 [ТС] | 6 | ||||||||||
я правильно понимаю?
я создавал char sss; и потом хотел в эти 4 байта(1 ячейка в памяти) запихнуть все данные аргумента time(&Time)? А надо было создать не 1 ячейку памяти тип чар, а массив данных, чтоб туда поместилась вся информация! По этому в коде
0
|
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
|
||||||
22.06.2014, 19:34 [ТС] | 8 | |||||
0
|
Землянин
34 / 34 / 16
Регистрация: 15.01.2013
Сообщений: 312
|
||||||
22.06.2014, 19:35 | 9 | |||||
ValeryS,
Добавлено через 41 секунду MMt, это выделение памяти под массив char на 100 элементов.
0
|
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
|
||||||
22.06.2014, 19:44 [ТС] | 10 | |||||
так... совсем запутал. почему ты не обозначил этот массив ранее?
Добавлено через 6 минут сходу 2 вопрос. дайте наводку какую функцию использовать или чем можно преобразовать данные о времени из time, чтобы выполнять ариффметичесские операции. например. Есть момент времени 1 и м. время 2. Надо узнать сколько между ними прошло секунд.
0
|
Землянин
34 / 34 / 16
Регистрация: 15.01.2013
Сообщений: 312
|
|
22.06.2014, 19:46 | 11 |
MMt,
1 Вариант - статическое выделение памяти под массив char на 100 элементов, кол-во элементов необходимо знать во время написания кода, изменить его во время выполнения не выйдет. 2 Вариант - динамическое выделение памяти под массив char на 100 элементов, т.е можно будет завести переменную, например n, считать значение из консоли и сделать new char[n], тем самым выделится память под массив char на n элементов.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
|
|||||||||||
22.06.2014, 19:49 | 12 | ||||||||||
а что ты удаляешь???
ты уже указатель на выделенную память потерял вот здесь этой строкой ты не копируешь из строки в строку а заменяешь указатель указывал на 100 адрес будет указывать на 200 нужно копировать строку для этого есть strcpy или sprintf http://lord-n.narod.ru/downloa... strcpy.htm http://lord-n.narod.ru/downloa... printf.htm вот как должна выглядеть твоя прога
0
|
Землянин
34 / 34 / 16
Регистрация: 15.01.2013
Сообщений: 312
|
||||||
22.06.2014, 19:59 | 13 | |||||
ValeryS, хмм, приму к сведению, спасибо.
0
|
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
|
|
22.06.2014, 20:01 [ТС] | 14 |
зачем удалять массив?
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
|
|
22.06.2014, 20:12 | 15 |
можно
но глупо строка содержит 15-20 символов,остальной мусор придется тоже копировать когда будешь изучать динамическое выделение памяти тогда поймешь пока прими на веру все что выделено new нужно удалять delete все что выделено malloc нужно удалять free если грубо сказать то мы возвращаем системе память которую у неё занимали если не возврашать то памяти у системы не будет и она не сможет нам в другой раз дать взаймы
0
|
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
|
|
22.06.2014, 20:17 [ТС] | 16 |
объяснил просто - "как угол дома" по больше бы таких ответов... спасибо огромное.
теперь 2 часть вопроса. Это данные типа чар. Значит я не смогу оперировать ими, когда мне надо будет найти разницу во времени между 2 моментами. Верно?
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
|
||||||
22.06.2014, 20:43 | 17 | |||||
Сообщение было отмечено MMt как решение
Решение
это строка( так скажем Си строка,потому что есть строка std::string)
строка в Си это массив char оканчивающийся 0 совершенно верно, но это и не нужно достаточно переменной типа time_t этот тип хранит количество секунд прошедшие с 1 января 1970 года значит имеем две переменных одну для начала другую для конца и вычисляем их разность например
1
|
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
|
||||||
22.06.2014, 20:46 [ТС] | 18 | |||||
0
|
22.06.2014, 20:46 | |
22.06.2014, 20:46 | |
Помогаю со студенческими работами здесь
18
Работает ли такая конструкция создания БД Класс без имени: почему у меня скомпилировалась такая конструкция? Что означает символ $ и почему такая конструкция будет работать только в COM программе Почему не работает конструкция Почему не работает конструкция? Почему не работает конструкция? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |