Estruturas com funcoes em C
fala ai, blz!?
o q vc fez ta 99% certo! hehehehehehe... tira somente o '*' depois do nome da funcao: sua funcao simplesmente tah retornando void (eh o que a declaracao do ponteiro diz), nao ponteiro pra void (eh o que a declaracao da funcao diz... (nao tah dando warning nao??))
sobre o problema, sinistro essas paradas q faz todo mundo puxar os cabelos com ponteiros em C: vc declarou o ponteiro mfs, mas o buffer de fato nao ta alocado (a area de memoria) - o q vc declarou eh uma area de memoria pra armazenar outro endereco de memoria. (:
vc AINDA nao tem uma espaco na memoria pra 'jogar' o valor de (void *) AddCliente (linha abaixo ao main()) em mfs->funcAddCliente (MAS, tem uma variavel que FUTURAMENTE apontara prum lugar do tipo da struct).
Código :
vc tem:
_____
| |
|*mfs| ---> xxxx
|____|
vc precisa
_____ ___________
| | | |
|*mfs| ---> | tipo |
|____| | de dado |
| da struct |
| declarada |
| |
|__________|
(putz... como faco texto em texto ASCII com tamanho fixo?)
depois de um malloc() ou de declarar 'fisicamente' o buffer (area de memoria e referenciar o ponteiro), vc pode atribuir.
(entao, essas paradas sao meio chatinhas mesmo... se for pra conhecer e aprender como funcemina, vale apena aprender!! se for pra trabalho e tal, c++ sem duvida)
/* no momento to sem acesso a uma maquina com compilador, mas deve ser +/- isso... */
#include <stdio.h>
#include <stdlib.h>
struct myFuncStruct{
int cod;
char nome[30];
void (*funcAddCliente)(int , char *);
} *mfs, msfBuff;
void AddCliente(int cod, char *nome){
mfsBuff.cod = cod;
strcpy(mfsBuff.nome, nome);
}
int main(){
mfs = &msfBuff;
mfs->funcAddCliente = (void *) AddCliente;
mfs->funcAddCliente(5,"Oii");
}
blz?
Estruturas com funcoes em C
ótimo, digno de code contest...
desse modo a alocação de mfs aponta para msfBuff e fica tudo certo.
mas da muito trampo pra pouca coisa...
Estruturas com funcoes em C
NOOOOOOOOSSSAAA.......rodei o bagulho e quase gozei.....pqp....quando eu crescer quero ser como voces.....vlw....ajudar pra cac***
Estruturas com funcoes em C
fala ai hez4el
eh... heheheheh (code contest eh muito bom)
por isso q C eh fogo... eu o defino como: "o cumulo da simplicidade feito da forma mais complexa possivel imaginada" :D
bem, depende da finalidade q o SDM quer: aprender/curiosidade ou usar a ideia efetivamente em um produto (que, na minha opniao, eh loucura se ele nao tiver fazendo algo BEM baixo nivel).
Estruturas com funcoes em C
Citação:
Postado originalmente por a2gs
(que, na minha opniao, eh loucura se ele nao tiver fazendo algo BEM baixo nivel).
num noto pelos palavrao q eu falo em baixo nivel.... :lol: :lol:
eu soh num intendi essa ideia do "Code contest" :oops: