Откуда segmentation fault?
Привет всем!
Имеется ф-ция:
char * get_cur_date(int i)
{
char *s;
time_t *t;
struct tm *ptm;
s = (char *)malloc(16);
time( t );
t += i*24*60*60;
ptm = localtime( t ); //<<<<<<<<<<<
strftime(s, 16 -1, "%b %e", ptm );
return s;
}
При сборке ее с простым драйвером, все тихо-мирно.
Когда вставляю ее в файл кода всей проги, gcc откуда-то берет в обозначенной
строке
warning: assignment makes pointer from integer without a cast
и при запуске проги вылазит сабж. Чего это он, а? :)
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 9329; Возраст листа: 350; Участников: 1207
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/187661
-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать: mailto:comp.soft.linux.discuss--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru
i386-asplinux-linux-gnu)
On Fri, 9 Jul 2004 22:46:04 +0300
Matvey <mathw***@u*****.fm> wrote:
^^^^^^^^^^
имхо правильней
time_t t;
.....
t = time(NULL);
или
time(&t);
Послений вариант не знаю как поведет себя т.к. всю сознательную жизнь
пользовался только первым :)
вот-вот, а не забыл что у тебя t -указатель?
естественно, читает в невыделенной памяти:((