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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2009, 16:08   #1
Vityalo
 
Регистрация: 13.09.2009
Сообщений: 9
Вопрос Двунаправленный список на си. Работа со списком.

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

Код:
#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.c

lab1.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; )

как сделать правильно?

Последний раз редактировалось Vityalo; 09.11.2009 в 16:09. Причина: смайлики вместо скобок
Vityalo вне форума Ответить с цитированием
Старый 09.11.2009, 16:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не знаю поможет ли, но запощу на всякий пожарный:http://www.programmersforum.ru/showt...%3B#post357717

Цитата:
invalid type argument of "unary *" ( k.next=*m; )
Может тебе нужно указателями работать?
Код:
block* k,m;
Тогда совсем по другому...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2009, 17:46   #3
Vityalo
 
Регистрация: 13.09.2009
Сообщений: 9
Радость

спасибо, теперь всё пашет, можно двигаться дальше

Код:
#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);
}

Последний раз редактировалось Vityalo; 09.11.2009 в 17:47. Причина: спасибо
Vityalo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двунаправленный список F_A_N_Alex Помощь студентам 0 01.10.2009 00:35
Двунаправленный список Chudo4258 Помощь студентам 6 09.05.2009 07:16
Конструкторы класса и двунаправленный список (*_*) Общие вопросы C/C++ 2 29.04.2009 18:17
Линейный Двунаправленный Список D1mon Помощь студентам 1 14.04.2009 21:37
Линейный двунаправленный список Seg_62 Паскаль, Turbo Pascal, PascalABC.NET 4 28.08.2008 21:02