Для того случая, когда информационная строка нашего списка представляет собой простой массив, туда можно вложить любой тип данных. Правда действия, которые необходимо произвести, неочевидны.

 

1) Заносим туда указатель (значение указателя – NULL)

 

    char *p;

    struct ListP *P0;

    p=(char *)malloc(sizeof (char *));

    P0=CRbegStrP(source);  /* создается первый элемент списка */

    p=(char *)NULL;

    ADDendStrP1(P0,(char *)&p,sizeof(struct ListP *)); 

/* в конец списка добавляется элемент со значением NULL */

 

2) Занесение числа int:

 

    int p;

    struct ListP *P0;

 

    P0=CRbegStrP(source);

    p=10;

    ADDendStrP1(P0,(char *)&p,sizeof(int)); 

 

А можно так:

    char * p;

    struct ListP *P0;

 

    p=(char *)malloc(sizeof(int));

    P0=CRbegStrP(source);

    p=59;

    ADDendStrP1(P0,(char *)&p,sizeof(int)); 

    free(p);

 

Обратный процесс(извлечение целого числа из списка:

   int I;

   S0=(char *)malloc(100);

   READonPosStrP1(P,1,S0,sizeof(int));

   CpStrN2(S0,&I,sizeof(int));

   printf(“%d”,I);

 

Хотя можно было бы  и сразу копировать из списка в I, без промежуточной строки S0.

 

 

Хостинг от uCoz