Font size
WorksheetsPonteiros em C - Alocação Dinâmica e Passagem por Referência
Total questions: 24
Worksheet time: 1hrs 4mins
Quais as principais aplicações do tipo ponteiro na linguagem C?
Guardar um endereço de memória de uma variável pré-existente no programa
Para acessar as posições de um vetor ou matriz
Para acessar uma área de memória alocada dinamicamente e implementar passagem de parâmetro por valor
Para acessar uma área de memória alocada dinamicamente e implementar passagem de parâmetro por referência
Um ponteiro pode ser utilizado de qual maneira?
Trabalha com o endereço armazenado no ponteiro;
Trabalha com a memória do ponteiro;
Trabalha com a área de memória pontada pelo ponteiro;
Trabalha com o endereço do ponteiro;
O que fornece o operador de valor indireto - * - em C?
Fornece o valor da memoria;
Fornece o valor que está inserido naquela posição de memória;
Fornece o endereço da memória;
Fornece o endereço da posição de memória
Em um programa em C,
int a = 20;
*ptr = &a;
**dptr = &ptr;
printf ("%d", **dptr);
apresenta
Endereço de a
Endereço de ptr
Valor de a
Endereço de dptr
No seguinte código:
double X = 20;
double *Ptr = &X;
*Ptr = X * X;
Qual é o valor de X?
0
40
400
800
Considere o seguinte código:
Ptr = malloc(10*sizeof(double*));
Como deve ser declarado a variável Ptr?
double Ptr;
double *Ptr;
double **Ptr;
Nenhuma das anteriores
What is passed when we pass an array as a function argument?
Base address of an array
Address of the last element of array
First value of elements in array
All value of element in array
Select the correct statement which is a combination of these two statements,
Statement 1: p= (char*) malloc(100);
Statement 2: char *p;
char *p = (char*)malloc(100);
char *p = (char) malloc(100);
char p = *malloc(100);
None of the above
For the below mention C statement, what is your comment?
signed int *p=(int*)malloc(sizeof(unsigned int));
Would throw Runtime error
Improper typecasting
Memory will be allocated but cannot hold an int value in the memory
No problem with the statement
Which library is needed for Dynamic memory allocation?
malloc.h
memory.h
stdlib.h
calloc.h
If ptr is a pointer variable pointing to an array, then
"printf("%d",*(ptr++)) ;"
statement will print :
Next location address
Next location index value
Next location value
Compile time error
malloc() stands for :
malicious location
memory allocation
multiple allocation
multi-alternate locations
Dynamically allocated memory is released by :
release()
dealloc()
free()
Compiler automatically
Passing address to a function as parameters is called
Default function call
Call by value
Call by reference
Call by pointers
The code to swap the values of two variables using pointers is given : TRUE / FALSE ?
temp = &ptr1 ;
&ptr1 = &ptr2 ;
&ptr2 = temp ;
TRUE
FALSE
From the given code, find the output :
char a[3] = {'a', '5' , '$'};
ptr=a;
for(i=1;i<=3;i++)
printf("%ld", a++);
a 5 $
124563 124564 124565
124563 124567 124571
Junk : 125845658 -25648569 -2564875
Como se aloca memória em C ?
int *x = (int)malloc(sizeof(int));
int *x = (int*)malloc(sizeof(*int));
int x = malloc(sizeof(int);
int *x = (int*)malloc(sizeof(int));
No código abaixo, a função imprimeMediaIdades(idade1,idade2) não é executada porquê?
#include <stdio.h>
int main(){
int idade1, idade2;
scanf("%d %d",&idade1,&idade2);
imprimeMediaIdades(idade1,idade2);
}
void imprimeMediaIdades(int idade1, int idade2){
printf("A média das idade é: %f", ((n1+n2)/2));
}
A função imprimeMediaIdades não é a mesma função implementada fora da função Main.
A função imprimeMediaIdades não foi definida antes da chamada da função Main (que executa o programa pela primeira vez)
Há um erro de lógica na implementação da função imprimeMediaIdades
A função scanf está com erro de sintaxe
O que é um ponteiro em Linguagem C?
É um endereço de uma outra variável;
É o endereço de uma variável;
É um variável que armazena o endereço de outra variável;
É a variável que armazena outra variável;
A função malloc em aloca memória da área de pilha do programa?
Sim
Não
Em qual área de memória do programa é realizada a alocação de células livres quando se utiliza a função malloc?
Área de Dados
Área de Pilha
Área de Heap
Área de Código
A função malloc do C solicita a alocação de memória em que tempo do programa?
Tempo de compilação
Tempo de Execução
Tempo de Carregamento
Tempo de Ligação
A função malloc realizar a alocação de memória dinamicamente. Como é realizada a liberação (desalocação) desta área de memória em C?
O coletor de lixo (garbage collector) do C realiza a liberação
Ao desvincular um ponteiro da área de memória ela é liberada automaticamente
A função malloc tem que ser chamada novamente com o argumento 0 (zero)
O programador tem que liberá-la explicitamente usando a função free
Em C parâmetros são sempre passados por?
Valor
Referência
Ambos, valor e referência
não-ponteiro por valor e ponteiro por referência
