Karkaroffy Posted December 22, 2012 Report Share Posted December 22, 2012 O problema é simples, tem uma variável do tipo struct dentro de uma struct. Eu consigo manusear ela normalmente dentro da Main, mas ao passar ela para uma função dá erro:#include <stdio.h> typedef struct { int num; } reg1; typedef struct { reg1 numero; } reg2; void calcula(reg2 reg); int main () { reg2 reg; calcula(reg); printf ("%d", reg.numero.num); return 0; } void calcula (reg2 reg){ reg.numero.num = 5; } Ou seja, se eu atribuir o valor 5 a 'num' dentro da Main com: reg.numero.num = 5;dá certo, já se eu usar isso dentro da função não dá...Agradeço quem puder ajudar :) Quote Link to comment Share on other sites More sharing options...
0 PedroCunha Posted December 23, 2012 Report Share Posted December 23, 2012 Você precisa criar objetos para a estrutura dentro das funções também. Quote Link to comment Share on other sites More sharing options...
0 Dan Oliveira Posted December 27, 2012 Report Share Posted December 27, 2012 Você está criando uma função que tem parametros passado por cópia, logo o valor alterado é da cópia da estrutura passada e não da própria.Não entendi o que você quer fazer, por que se for pra atribuir é bem mais recomendável fazer dentro de main, caso faça um calculo, mostre nos que tipo de cálculo seria. Quote Link to comment Share on other sites More sharing options...
0 Mateus GP Posted December 31, 2012 Report Share Posted December 31, 2012 (edited) #include <stdio.h> typedef struct{ int num; } reg1; typedef struct { reg1 numero; } reg2; void calcula(reg2* reg); int main () { reg2 reg; calcula(®); printf ("%d", reg.numero.num); return 0; } void calcula (reg2* reg){ reg->numero.num = 5; } Edited December 31, 2012 by Mateus GP Quote Link to comment Share on other sites More sharing options...
Question
Karkaroffy
O problema é simples, tem uma variável do tipo struct dentro de uma struct. Eu consigo manusear ela normalmente dentro da Main, mas ao passar ela para uma função dá erro:
Ou seja, se eu atribuir o valor 5 a 'num' dentro da Main com:dá certo, já se eu usar isso dentro da função não dá...
Agradeço quem puder ajudar :)
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.