C/C++ (PDS 1 e 2) Flashcards

1
Q

Para que serve o operador :: em C++? Qual a outra instrução que serve para a mesma utilidade? Qual o problema que pode ocorrer com a solução alternativa?

A

O operador <esquerda> :: <direita> serve para informar ao compilador que ele deve usar a propriedade da direita que foi definida no namespace da esquerda.</direita></esquerda>

É possível conseguir o mesmo resultado com a instrução “using namespace <esquerda>" porém podem ocorrer conflitos caso múltiplos namespaces possuam atributos de mesmo nome.</esquerda>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual a diferença entre alocar um array usando int array[n] e int *array = malloc(n * sizeof(int)) ? Quando deve se preferir um ao outro?

A

int array[n] aloca memória na pilha. O acesso aos elementos é bem mais rápido que a alternativa, mas há menos memória disponível e ela é compartilhada com chamadas de função. A liberação da memória ocorre automaticamente quando a variável sai do escopo.

int *array = malloc(n * sizeof(int)) aloca a memória no heap. A execução é mais lenta, porém há bem mais memória disponível. A liberação ocorre de forma manual usando o comando free.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly