Uma matriz pode ser criada pela utilização de ponteiros para ponteiros. Para isso, a dimensão que representa as linhas é implementada como um vetor de ponteiros para ponteiros. Cada item da linha faz referência à um vetor de ponteiros, com a dimensão da quantidade de colunas, para o armazenamento das informações propriamente dito. Para essa questão, analise o código a seguir para a remoção da matriz previamente criada através da alocação dinâmica de memória e preencha as lacunas:
float ___RemoveMatriz(int n_linhas, float ___matriz)
{
int i;
if (matriz==NULL)
return NULL;
for (i=0; i
free (___);
free(___);
return NULL;
}
int main()
{
float **mat;
mat = CriarMatriz(5,5);
if(mat==NULL)
{
printf("Erro criacao da matriz.\n");
return 0;
}
mat = RemoveMatriz(5,mat);
return 0;
}
Assinale a alternativa que apresenta a sequência correta das lacunas preenchidas.
** ; ** ; matriz; matriz[i].
. ** ; ** ; matriz[i]; matriz.
* ; ** ; matriz[i]; matriz.
* ; * ; matriz; matriz[i].
* ; * ; matriz[i]; matriz.
Assinale a alternativa que apresenta a sequência correta das lacunas preenchidas.
** ; ** ; matriz; matriz[i].
Explicação: Na função de remoção da matriz, o parâmetro "matriz" é um ponteiro para ponteiro (float ), representando a matriz a ser removida. Portanto, na primeira lacuna, devemos utilizar o operador de indireção duplo (), para obter o valor apontado pelo ponteiro para ponteiro. Na segunda lacuna, não há necessidade de utilizar o operador de indireção duplo, uma vez que já estamos lidando com um ponteiro para ponteiro. Na terceira lacuna, devemos passar o nome do parâmetro "matriz", que representa a matriz a ser removida. Na quarta lacuna, devemos utilizar o índice "i" para acessar as linhas da matriz, utilizando o operador de indireção simples (*), uma vez que estamos lidando com um vetor de ponteiros. Portanto, a alternativa correta é:
** ; ** ; matriz; matriz[i].
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar