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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2011, 12:21   #1
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию статические данные

предыдущий вопрос снимается. вот код:
Код:
//------------------------------------------------------38-5.cpp

#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;

//------------------------------------------------------ 20

typedef int (*PCMP)(void*, void*);

struct x20
{
	void *data;
	x20 **link;
};

x20* c1[] = {NULL};
x20 a1 = {"a", c1}, a2 = {"s", c1}, a3 = {"f", c1};
x20 *b1[] = {&a1, NULL}, *b2[] = {&a2, NULL}, *b3[] = {&a3, NULL};
x20 a4 = {"q", b1}, a5 = {"v", b2}, a6 = {"p", b3};
x20 *b4[] = {&a4, &a5, &a6, NULL};
x20 a7 = {"m", b4};

void *F20( x20 *p, PCMP pf )
{
	x20 **q;
	void *s, *r;
	if ( p == NULL ) return NULL;
	s = p -> data;
	for ( q = p -> link; *q != NULL; q++ )
	{
		r = F20 ( *q, pf );
		if ( r != NULL && (*pf)(s, r) == -1 ) s = r;
	};
	return s;
};

int function(void *a, void *b)
{
	return strcmp ((char*)a, (char*)b);
};

int _tmain(int argc, _TCHAR* argv[])
{
	PCMP pcmp(function);
	cout << (char*)F20(&a7, pcmp) << "\n";

	system("pause");
	return 0;
}
вообще задача академическая. в программе происходит поиск самой "большой строки". вопрос: такая реализации - г@вно??
я в том смысле что передавать указатель на функцию как аргумент. первый раз такое встречаю.

Последний раз редактировалось Kukurudza; 17.09.2011 в 15:05.
Kukurudza вне форума Ответить с цитированием
Старый 17.09.2011, 12:58   #2
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Код:
x6 * oa[] = {&a1, &a2, &a3}, a4 = {"a1<-a4", oa};

ЫЫЫ:
че-то я туплю, каким .. это вообще должно работать?
два указателя в структуре. инициализация константами, которые живут сколько? ровно столько сколько нужно для выполнения присвоения, а?

объявите все константы отдельно, напрмер
Код:
const char astr1[] = "a1";
и выполните разумную инициализацию.

Последний раз редактировалось f.hump; 17.09.2011 в 13:08.
f.hump вне форума Ответить с цитированием
Старый 17.09.2011, 13:03   #3
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

да! точно. не подумал. спасибо

смотреть первый пост

другая задача, смотреть первый пост

Последний раз редактировалось Stilet; 17.09.2011 в 16:34.
Kukurudza вне форума Ответить с цитированием
Старый 17.09.2011, 15:28   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
вопрос: такая реализации - г@вно??
бесспорно.

напомнило анекдот:
Штирлиц спрашивает радистку Кет: "Кет, ты любишь кино?"
- Бесспорно.
- А я с порно.
f.hump вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Статические члены класса _-Re@l-_ Общие вопросы C/C++ 8 20.01.2011 23:18
Статические массивы aus Общие вопросы C/C++ 1 17.10.2010 15:32
Классы и статические методы. profi Общие вопросы по Java, Java SE, Kotlin 4 29.03.2010 09:09
статические переменные cooperOk JavaScript, Ajax 1 18.11.2009 12:01
Статические переменные в Delphi megachuhancer Общие вопросы Delphi 2 29.07.2009 14:16