Информатика и технология программирования


Вопросы без ответов


Определить способ размещения последовательности переменных в общей области памяти, которая читается или заполняется функцией (формат структуры данных).


//------------------------------------------------------bk44-03.cpp


struct man {char name[20]; int dd,mm,yy; char *addr; };
char *F1(char *p, char *nm, char *ad)
{ man *q =(man*)p;
strcpy(q-&#62name,nm);
strcpy((char*)q+1,ad);
q-&#62addr = (char*)q+1;
for (p=(char*)q+1; *p!=0; p++);
p++;
return p;}
//------------------------------------------------------ 2


struct man1 {char name[20]; int dd,mm,yy; char addr[]; };
char *F2(char *p, char *nm, char *ad)
{ man1 *q =(man1*)p;
strcpy(q-&#62name,nm);
strcpy(q-&#62addr,ad);
for (p=q-&#62addr; *p!=0; p++);
p++;
return p;}
//------------------------------------------------------ 3


int *F3(int *q, char *p[])
{ int i,j;
char *s;
for (i=0; p[i]!=NULL; i++);
*q = i;
for (s = (char*)(q+1), i=0; p[i]!=NULL; i++)
{
for (j=0; p[i][j]!='\0'; j++) *s++ = p[i][j];
*s++ = '\0';
}
return (int*)s;}
//------------------------------------------------------- 4


double F4(int *p)
{ double *q,s; int m;
for (q=(double*)(p+1), m=*p, s=0.; m&#62=0; m--) s+= *q++;
return s;}
//------------------------------------------------------- 5


char *F5(char *s, char *p[])
{ int i,j;
for (i=0; p[i]!=NULL; i++)
{
for (j=0; p[i][j]!='\0'; j++) *s++ = p[i][j];
*s++ = '\0';
}
*s = '\0';
return s;}
//------------------------------------------------------- 6


union x {int *pi; long *pl; double *pd;};
double F6(int *p)
{ union x ptr;
double dd=0;
for (ptr.pi=p; *ptr.pi !=0; )
switch (*ptr.pi++)
{
case 1: dd += *ptr.pi++; break;
case 2: dd += *ptr.pl++; break;
case 3: dd += *ptr.pd++; break;
}
return dd;}
//------------------------------------------------------- 7


unsigned char *F7(unsigned char *s, char *p)
{ int n;
for (n=0; p[n] != '\0'; n++);
*((int*)s)++ = n;
for (; *p != '\0'; *s++ = *p++);
s++;
return s;}
//------------------------------------------------------- 8


int *F8(int *p, int n, double v[])



Начало  Назад  Вперед



Книжный магазин