Informática, perguntado por NunesHouse, 2 meses atrás

QUESTÃO 1
Você faz parte de uma equipe de programadores contratados para implementar uma solução de grafo ponderado representado por uma lista de adjacência.

Primeiro foi criado a lista de adjacências, que aponta para o nó de destino, o peso associado a aresta que leva ao nó de destino e o próximo elemento da lista de adjacências.

typedef struct adjacencia {
int vertice;
int peso;
struct adjacencia *prox;
}ADJACENCIA;



Os dados são armazenados nos vértices ou nós. Esta estrutura possui apenas a cabeça da lista de adjacência.

typedef struct vertice {
ADJACENCIA *cabeca;
}VERTICE;



A estrutura do grafo armazena o número total de vértices e aretas do grafo caso você queira utilizar em algum momento do seu código. A vantagem em saber desta informação consiste em evitar de percorrer toda a estrutura. A última linha de definição da estrutura contém o arranjo de vertices da estrutura.

typedef struct grafo {
int vertices;
int arestas;
VERTICE *adj;
}GRAFO;



Após a definição das estruturas (lista de adjacência, vértice e grafo), os desenvolvedores implementaram a função de criar o grafo.

GRAFO *criaGrafo (int v) {
int i;
GRAFO *g = (GRAFO *)malloc(sizeof(GRAFO));
g->vertices = v;
g->arestas = 0;
g->adj = (VERTICE *)malloc(v*sizeof(VERTICE));
for (i=0; i adj[i].cabeca = NULL;
}
return(g);
}

Além de implementar o código, assinale a alternativa correta a respeito da função malloc a seguir:

GRAFO *g = (GRAFO *)malloc(sizeof(GRAFO));

Alternativas
Alternativa 1:
A função malloc retorna o tamanho da estrutura do grafo.

Alternativa 2:
A função malloc reservará um espaço na memória relativo a 8 bits.

Alternativa 3:
A função malloc reservará um espaço na memória relativo a 16 bytes.

Alternativa 4:
A função malloc reservará um espaço na memória do tamanho de um inteiro.

Alternativa 5:
A função malloc reservará em memória um espaço relativo a estrutura do grafo.

Soluções para a tarefa

Respondido por phsantos201140
10

Resposta:

Resposta correta é a alternativa 5.

Explicação:

A função malloc (o nome é uma abreviatura de memory allocation) aloca espaço para um bloco de bytes consecutivos na memória RAM (= random access memory) do computador e devolve o endereço desse bloco. O número de bytes é especificado no argumento da função.
url:(https://www.ime.usp.br/~pf/algoritmos/aulas/aloca.html#:~:text=A%20fun%C3%A7%C3%A3o%20malloc%20(o%20nome,especificado%20no%20argumento%20da%20fun%C3%A7%C3%A3o.)



Explicando de uma outra forma, basicamente a função malloc guarda um espaço na memoria para uma quantidade de bytes definido ou manualmente ou automaticamente com a função sizeof

Perguntas interessantes