Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 15:05   #1
TIT0
 
Регистрация: 08.03.2009
Сообщений: 4
По умолчанию Создание функции "struct to array"

Здравствуйте все. Мне надо создать функцию которая принимает структуру, а возвращает массив, заполненый элементами структуры.
Вроде написано все правильно но он почему то неработает, хотел бы разобраться.

Код:
#include <stdio.h>
#include <time.h>


struct tm intime,outtime;	// ingps - input time & date, outgps - output
time_t val_sec,val_new; //

char *do_array(struct tm *outtime ); // моя функция которая принимает указатель на структуру и возвращает указатель на массив(теоритически)
char p;	// переменная указатель на массив возвращаемый do_array
char j;	//	переменная со значением от указателя
int main (void)
{
/* инициализация членов структуры входной */
{
	intime.tm_sec=10;
	intime.tm_min=19;
	intime.tm_hour=23;
	intime.tm_mday=22;
	intime.tm_mon=4;
	intime.tm_year=109;
	}
/* расчет времени*/
val_sec=mktime(&ingps);
val_new=val_sec+1;
outtime=*localtime(&val_new);
/* вызов фнкции */
p = do_array(&outtime);
j=&p;
printf("%s",j);
return 0;
}
Моя функция
Код:
#include <stdio.h>
#include <time.h>
char *do_array(struct tm *mytime)
{
char inarray[]="000000000000"; // массив шаблон
char outarray[12];	// выходной массив с данными
char a[16];		// буфер
int t,y;		//..
y=0;
t=0;
	while (t<11)    // заполняем выходной массив
	{
	outarray[t]=inarray[t];
	if(t==0)		// vremya
		{
			y=mytime.tm_hour;
			sprintf(a,"%2.2i",y); // PREOBRAZOVANIE TYPOV int2char
			outarray[t]=a[0];
			t++;
			outarray[t]=a[1];
			t++;

			sprintf(a,"%2.2i",mytime.tm_min);
			outarray[t]=a[0];
			t++;
			outarray[t]=a[1];
			t++;
	
			sprintf(a,"%2.2i",mytime.tm_sec);
			outarray[t]=a[0];
			t++;
			outarray[t]=a[1];
		}

	if(t==6)		// data
		{
			sprintf(a,"%2.2i",mytime.tm_mday);// PREOBRAZOVANIE TYPOV int2char
			outarray[t]=a[0];
			t++;
			outarray[t]=a[1];
			t++;

			sprintf(a,"%2.2i",mytime.tm_mon);
			outarray[t]=a[0];
			t++;
			outarray[t]=a[1];
			t++;
								
			sprintf(a,"%4.4i",mytime.tm_year);
			outarray[t]=a[2];
			t++;
			outarray[t]=a[3];
		}
	t++;

	}
return *outarray // возвращаем массив
}
TIT0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание "суб-меню" из файлов в заданном каталоге Abhorrer Общие вопросы Delphi 5 14.03.2009 21:47
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Вопрос по функции "если" с цветом.. Dr.Eric Microsoft Office Excel 2 17.04.2007 19:44