[Resolvido] Problema com retorno de struct de matrizes para funções
Pessoal, sou novo no forum, e programo há 1 ano mais ou menos.
Estou tentando fazer um programa que toque musicas através da função Beep(nota,tempo) que encontrei há pouco na internet. Só que quando tento implementar uma função que importa uma musica de um arquivo, na hora do retorno dessa função dá um erro. O código a seguir:
// principal.c
#include "funcoes.h"
#include <stdio.h>
#include <stdlib.h>
int main()
{
notas music[MAX];
int esc;
for (;; )
{
printf("TOCAR MUSICA (1)\n");
printf("IMPORTAR MUSICA DE ARQUIVO (2)\n");
printf("EXPORTAR MUSICA PARA ARQUIVO (3)\n");
printf("SAIR (4)\n");
printf("Digite sua escolha: ");
scanf("%d",&esc);
switch(esc)
{
case 1:
tocamus(music);
break;
case 2:
music = importamus();
break;
case 3:
exportamus(music);
break;
case 4:
exit(1);
break;
default:
printf("Valor invalido.");
break;
}
}
}
//funcoes.h
#define MAX 100
typedef struct
{
int hertz;
int tempo;
}notas;
notas *importamus(void);
void tocamus(notas musica[]);
void exportamus(notas musica[]);
//funcoes.c
#include "funcoes.h"
#include <stdio.h>
#include <stdlib.h>
notas *importamus(void)
{
int i=0;
notas musica[MAX];
char arq[MAX];
char nota[MAX];
char temp[MAX];
FILE *fp;
printf("Digite o nome do arquivo: ");
scanf("%s",&arq);
if((fp=fopen(arq, "r")) == NULL)
{
printf("Erro ao acessar o arquivo %s\n",arq);
system("PAUSE");
}
while (!feof(fp))
{
fgets(nota, MAX, fp);
musica[i].hertz=atoi(nota);
fgets(temp, MAX, fp);
musica[i].tempo=atoi(temp);
i++;
}
fclose(fp);
return musica;
}
void tocamus(notas musica[])
{
}
void exportamus(notas musica[])
{
}
O erro que dá aqui é o seguinte:
in function "int main":
23 - incompatible types in assignment of 'notas' to 'notas[100]'
Já tentei mudar parametros, adicionar ponteiro, tirar ponteiro, tudo mais, alguem poderia me ajudar?
desde já agradeço.
Discussão (4)
Carregando comentários...