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

Segmentation fault при использовании модуля <time.h> - C++

Восстановить пароль Регистрация
 
DKOI
 Аватар для DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
30.10.2011, 19:05     Segmentation fault при использовании модуля <time.h> #1
Есть код
C++
1
2
3
4
5
6
7
time_t now;
struct tm * ptr;
static char tbuf[64];
bzero(tbuf,64);
time(&now);
ptr = localtime(&now);
strftime(tbuf, 64, "%c ", ptr);
На что вылезают предупреждения
testerd.c:25:6: предупреждение: в присваивании целое преобразуется в указатель без приведения типа [по умолчанию включена]
testerd.c:26:2: предупреждение: несовместимая неявная декларация внутренней функции «strftime» [по умолчанию включена]
И segmentation fault при запуске программы. Если закоментировать strftime и поставить tbuf[0] = '\0', то все работает. Подскажите, в чем проблема?
Компилятор gcc 4.6.2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 19:05     Segmentation fault при использовании модуля <time.h>
Посмотрите здесь:

[C/C++] "Segmentation fault" при попытке передачи параметра командной строки. C++
C++ Segmentation fault :(
Segmentation fault при вызове метода C++
C++ Segmentation fault
C++ Segmentation fault
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.10.2011, 19:25     Segmentation fault при использовании модуля <time.h> #2
DKOI, где-то ещё не комильфо, это у меня нормально и скомпилировалось, и отработало.
Segmentation fault при использовании модуля <time.h>

Код
$ gcc -dumpversion
4.0.1
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
30.10.2011, 19:26     Segmentation fault при использовании модуля <time.h> #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <time.h>
 
int main()
{
 
    time_t now;
    struct tm * ptr;
    static char tbuf[64];
    bzero(tbuf,64);
    time(&now);
    ptr = localtime(&now);
    strftime(tbuf, 64, "%c ", ptr);
    puts(tbuf);
}
Bash
1
2
3
4
5
6
eugene@pc-eugene:~/c$ gcc test1.c -o test1
test1.c: В функции «main»:
test1.c:10:2: предупреждение: несовместимая неявная декларация внутренней функции «bzero» [по умолчанию включена]
eugene@pc-eugene:~/c$ ./test1
Sun Oct 30 21:15:41 2011 
eugene@pc-eugene:~/c$
gcc 4.6.1
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.10.2011, 19:28     Segmentation fault при использовании модуля <time.h> #4
Евгений М., bzero объявлена в strings.h
DKOI
 Аватар для DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
30.10.2011, 19:41  [ТС]     Segmentation fault при использовании модуля <time.h> #5
C
1
2
3
4
5
6
7
8
9
10
11
12
char*
get_time()
{
    time_t now;
    struct tm *ptr;
    static char tbuf[64];
    bzero(tbuf, 64);
    time(&now);
    ptr = localtime(&now);
    strftime(tbuf, 64, "%c ", ptr);
    return tbuf;
}
C
1
2
3
char str[312];
bzero(str, 312);
strcpy(str, get_time());
больше get_time() нигде не используется

Добавлено через 10 минут
В общем, нашел причину всех бед. В задании было сказано использовать <sys/time.h>. Посему ошибка и выскакивала. Поставил <time.h> и все заработало. Ваш пример помог разобраться Спасибо.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
30.10.2011, 19:48     Segmentation fault при использовании модуля <time.h> #6
Цитата Сообщение от DKOI Посмотреть сообщение
В задании было сказано использовать <sys/time.h>. Посему ошибка и выскакивала. Поставил <time.h> и все заработало.
Не понял.
По названию темы - Вы использовали <time.h>
Поставили <time.h> (или ничего не изменили) - заработало.
Вот такой у меня вывод.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 20:13     Segmentation fault при использовании модуля <time.h>
Еще ссылки по теме:

Segmentation fault C++
C++ Ошибка "Segmentation fault" при организации дерева
Segmentation fault при наследовании класса C++

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

Или воспользуйтесь поиском по форуму:
DKOI
 Аватар для DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
30.10.2011, 20:13  [ТС]     Segmentation fault при использовании модуля <time.h> #7
Суть ошибки была в том, что я считал, что <sys/time.h> и <time.h> суть одно и то же. Оказалось, что это не так.
Yandex
Объявления
30.10.2011, 20:13     Segmentation fault при использовании модуля <time.h>
Ответ Создать тему
Опции темы

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