1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Adicionar elemento a um array em C

Discussão em 'Programação' iniciada por Diogo666, 7 de Dezembro de 2012. (Respostas: 1; Visualizações: 730)

  1. Eu para adicionar Aluno a um array, preciso de um contador e de um array do tipo Aluno, o meu professor não quer que eu use uma variável global para o contador, eu criei um contador dentro de uma função que é o menu_aluno e passo como parâmetro para a função adicionar, e funciona mas se eu voltar para o menu_principal a variável fica a zeros outra vez.Existe alguma maneira de resolver?
    Código:
    [COLOR=#993333][FONT=Consolas]void[/FONT][/COLOR][COLOR=#000000][FONT=Consolas] menu_Aluno[/FONT][/COLOR][COLOR=#009900][FONT=Consolas]([/FONT][/COLOR][COLOR=#009900][FONT=Consolas])[/FONT][/COLOR][COLOR=#009900][FONT=Consolas]{[/FONT][/COLOR]
    [COLOR=#666666][FONT=Consolas][I]// add[/I][/FONT][/COLOR]
    [COLOR=#993333][FONT=Consolas]unsigned[/FONT][/COLOR][COLOR=#993333][FONT=Consolas]int[/FONT][/COLOR][COLOR=#000000][FONT=Consolas] op[/FONT][/COLOR][COLOR=#339933][FONT=Consolas];[/FONT][/COLOR]
    [COLOR=#993333][FONT=Consolas]unsigned[/FONT][/COLOR][COLOR=#993333][FONT=Consolas]int[/FONT][/COLOR][COLOR=#000000][FONT=Consolas] countAluno[/FONT][/COLOR][COLOR=#339933][FONT=Consolas]=[/FONT][/COLOR][COLOR=#0000DD][FONT=Consolas]0[/FONT][/COLOR][COLOR=#339933][FONT=Consolas];[/FONT][/COLOR]
    
    [COLOR=#B1B100][FONT=Consolas]do[/FONT][/COLOR][COLOR=#009900][FONT=Consolas]{[/FONT][/COLOR]
    [URL="http://www.portugal-a-programar.pt/topic/57684-editar-struct/%3Cspan%3Ehttp://%3C/span%3Ewww.opengroup.org/onlinepubs/009695399/functions/printf.html"][COLOR=#000066]printf[/COLOR][/URL][COLOR=#009900][FONT=Consolas]([/FONT][/COLOR][COLOR=#FF0000][FONT=Consolas]"............................[COLOR=#000099][B]\n[/B][/COLOR]"[/FONT][/COLOR][COLOR=#009900][FONT=Consolas])[/FONT][/COLOR][COLOR=#339933][FONT=Consolas];[/FONT][/COLOR]
    [URL="http://www.portugal-a-programar.pt/topic/57684-editar-struct/%3Cspan%3Ehttp://%3C/span%3Ewww.opengroup.org/onlinepubs/009695399/functions/printf.html"][COLOR=#000066]printf[/COLOR][/URL][COLOR=#009900][FONT=Consolas]([/FONT][/COLOR][COLOR=#FF0000][FONT=Consolas]"1-Adicionar aluno[COLOR=#000099][B]\n[/B][/COLOR]"[/FONT][/COLOR][COLOR=#009900][FONT=Consolas])[/FONT][/COLOR][COLOR=#339933][FONT=Consolas];[/FONT][/COLOR]
    
    [URL="http://www.portugal-a-programar.pt/topic/57684-editar-struct/%3Cspan%3Ehttp://%3C/span%3Ewww.opengroup.org/onlinepubs/009695399/functions/scanf.html"][COLOR=#000066]scanf[/COLOR][/URL][COLOR=#009900][FONT=Consolas]([/FONT][/COLOR][COLOR=#FF0000][FONT=Consolas]"%u"[/FONT][/COLOR][COLOR=#339933][FONT=Consolas],&[/FONT][/COLOR][COLOR=#000000][FONT=Consolas]op[/FONT][/COLOR][COLOR=#009900][FONT=Consolas])[/FONT][/COLOR][COLOR=#339933][FONT=Consolas];[/FONT][/COLOR]
    
    [COLOR=#B1B100][FONT=Consolas]switch[/FONT][/COLOR][COLOR=#009900][FONT=Consolas]([/FONT][/COLOR][COLOR=#000000][FONT=Consolas]op[/FONT][/COLOR][COLOR=#009900][FONT=Consolas])[/FONT][/COLOR][COLOR=#009900][FONT=Consolas]{[/FONT][/COLOR]
    [COLOR=#B1B100][FONT=Consolas]case[/FONT][/COLOR][COLOR=#0000DD][FONT=Consolas]1[/FONT][/COLOR][COLOR=#339933][FONT=Consolas]:[/FONT][/COLOR]
    [COLOR=#000000][FONT=Consolas]                         addAluno[/FONT][/COLOR][COLOR=#009900][FONT=Consolas]([/FONT][/COLOR][COLOR=#339933][FONT=Consolas]&[/FONT][/COLOR][COLOR=#000000][FONT=Consolas]countAluno[/FONT][/COLOR][COLOR=#009900][FONT=Consolas])[/FONT][/COLOR][COLOR=#339933][FONT=Consolas];[/FONT][/COLOR]
    
    [COLOR=#000000][FONT=Consolas][B]break[/B][/FONT][/COLOR][COLOR=#339933][FONT=Consolas];[/FONT][/COLOR]
    [COLOR=#009900][FONT=Consolas]}[/FONT][/COLOR]
    
    
    [COLOR=#009900][FONT=Consolas]}[/FONT][/COLOR][COLOR=#B1B100][FONT=Consolas]while[/FONT][/COLOR][COLOR=#009900][FONT=Consolas]([/FONT][/COLOR][COLOR=#000000][FONT=Consolas]op [/FONT][/COLOR][COLOR=#339933][FONT=Consolas]!=[/FONT][/COLOR][COLOR=#0000DD][FONT=Consolas]6[/FONT][/COLOR][COLOR=#009900][FONT=Consolas])[/FONT][/COLOR][COLOR=#339933][FONT=Consolas];[/FONT][/COLOR]
    [COLOR=#009900][FONT=Consolas]}[/FONT][/COLOR]
     
  2. Darien

    Darien Power Member

    Se declarares o countAluno como static ficas com o problema resolvido, mas info aqui: http://www.learncpp.com/cpp-tutorial/43-file-scope-and-the-static-keyword/ .

    Versão condensada: quando sais da função, todas as variáveis que lá foram declaradas saem de scope, portanto a informação é destruída; voltando a entrar na função, vais usar as variáveis como se fosse a primeira vez.
     

Partilhar esta Página