옥정훈님. 아래 답해주셨던 init, release 의 간단한 예를...

익명 사용자의 이미지

안녕하세요. 민인식입니다.

말씀해 주셨던 구조체의 사용 중에 init, release 라른 함수 정의해서 쓰
는 예를 좀 보여주시면 안될까여?

^^... 이래 저래 해봤지만 잘 되질 않네염...

그럼 안녕히 계세요.

익명 사용자의 이미지

#include

typedef struct _data
{
char *buf;
int (*init)(struct _data*);
void (*run)(struct _data*);
int (*release)(struct _data*);
}Data;

static int _init(Data *p)
{
if((p->buf=(char*)malloc(sizeof(char)*100)) == NULL)
return -1;
strcpy(p->buf, "hello");
return 0;
}

static void _run(Data *p)
{
printf("%s\n", p->buf);
}

static int _release(Data *p)
{
free(p->buf);
return 0;
}

int main()
{
Data data;
data.init = _init;
data.run = _run;
data.release = _release;

if(data.init(&data) < 0)
return -1;
data.run(&data);
data.release(&data);
return 0;
}

익명 사용자의 이미지

감사합니다.