Двунаправленный список на си. Работа со списком.

задача: организовать двунаправленный список на языке си (не с++) такой список организовывал на паскале, проблем не было.
#include <stdio.h>

typedef struct block_op
{
int data;
int isfree;
struct block_op *next;
struct block_op *prev;
}
block;

int main()
{

	block k,m;
	k.data='1';
	m.data='2';

	k.next=*m;

	k=&k.next;

	printf("%c",k.data);


	return (0);
}
gcc lab1.clab1.c: In function "main": lab1.c:19: error: invalid type argument of "unary *" ( k.next=*m; ) lab1.c:21: error: incompatible types in assignment ( k=&k.next; )как сделать правильно?
2 ответа

Не знаю поможет ли, но запощу на всякий пожарный:http://www.programmersforum.ru/showt...%3B#post357717
invalid type argument of "unary *" ( k.next=*m; )
Может тебе нужно указателями работать?
block* k,m;
Тогда совсем по другому...


спасибо, теперь всё пашет, можно двигаться дальше
#include <stdio.h>
#include <malloc.h>

typedef struct block_op
{
int data;
int isfree;
struct block_op *next, *prev;
}
block;

int main()
{
	block *k = malloc(sizeof(block));
	block *m = malloc(sizeof(block));

	(*k).data='1';
	(*m).next=k;

	m=(*m).next;

	printf("%c",(*m).data);
	return (0);
}