Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

beto.corujao

Exemplos de Protótipos

Recommended Posts

Oi pessoal, tô com uma dúvida que é a seguinte:

 

 

Como ficariam as declarações de funções (protótipos) para matrizes estáticas e dinâmicas e struct?

 

 .
 .
 .
exemplo_funcao(char descricao[][MAX_DES],
               int data[],
               int notas[][MAX_COL],
               int *matriz,
               int **matriz,
               Livro cod[]; //struct);

int main(){
 .
 .
 .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por partes, beto!

 

Olhe só,

char descricao[][MAX_DES]
esta dizendo que tem um array de strings © com MAX_DES elementos.

 

int data[]
Diz que data é um array de int.

 

int notas[][MAX_COL]
Diz que notas é um array de arrays de int com MAX_COL elementos

 

int *matriz
Diz que matrix é um ponteiro para um inteiro.

 

int **matriz
Diz que matriz é um ponteiro para um ponteiro para um inteiro

 

Livro cod[]
Diz que cod é um array de Livro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pois é, testando aqui percebi que assim da certo.

 

Sou novo em C++ e estava criando os protótipos apenas informando o tipo, sem informar a variável, o que causava a mensagem de erro abaixo:

 


mat_parametro.cpp:28: error: invalid conversion from ‘int (*)[MAX_COL]’ to ‘int’
mat_parametro.cpp:28: error:   initializing argument 1 of ‘int exemplo_funcao(int)’ // PARA MATRIZ ESTÁTICA

mat_parametro.cpp:59: error: invalid conversion from ‘char (*)[MAX_DES]’ to ‘char’
mat_parametro.cpp:59: error:   initializing argument 1 of ‘void exemplo_funcao(char)’ // PARA CHAR

Os erros estão ocorrendo na chamada das funções.

 

Os protótipos para matriz dinâmica eu estava informando como int **, o que não causou erro.

 

Não é redundante criar a variável no protótipo e depois na própria função?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Não é redundante criar a variável no protótipo e depois na própria função?

 

Não se cria variável alguma num protótipo de função. Você só fornece um nome a um endereço de memória.

Variável é criada numa declaração, dentro da definição da função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.