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


Тест 3 - часть 4


n = n - sizeof(man);
p-&#62addr = malloc(n);
fread(p-&#62addr,n,1,fd);
return(p);
}
// 20------------------------------------------------------


struct man { int dd,mm,yy; char *addr};
void F(FILE *fd, man *p)
{ int n;
n = sizeof(man)+strlen(p-&#62addr)+1;
fseek(fd,0L,SEEK_END);
fwrite(&#38n,sizeof(int),1,fd);
fwrite (p, sizeof(man),1,fd);
n = n - sizeof(man);
fwrite (p-&#62addr, n,1,fd);
}
// 21------------------------------------------------------


struct man { char name[20]; int dd,mm,yy; char *address; };
struct man *F(char *nm, char *addr)
{ struct man *p;
p = malloc(sizeof(struct man) + strlen(addr+1));
strcpy(p-&#62name,nm);
strcpy(p+1,addr);
p-&#62address = p+1;
return(p);
}
// 22------------------------------------------------------


int *F(char **p)
{ int *q,n,i,j;
char *s;
for (n=i=0; p[i]!=NULL; i++) n+= strlen(p[i]);
q = malloc(sizeof(int) + n + i);
*q = i;
for (s = q+1, i=0; p[i]!=NULL; i++)
{
for (j=0; p[i][j]!='\0'; j++) *s++ = p[i][j];
*s++ = '\0';
}
return(q);
}
// 23------------------------------------------------------


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


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


union x { int *pi; long *pl; double *pd; };
double F(int *p)
{
union x ptr;
double dd;
for (dd=0., 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);
}


// 26------------------------------------------------------


char *F(char *p)
{ char *s,*q;
int n,i;
n=strlen(p);
if (n &#62 255) return(NULL);
q = malloc(n + 1);
*q = n;
for (s = q+1; *p != '\0'; *s++ = *p++);



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