Malloc e Free

Tem como utilizar free sem o malloc?

Por exemplo:

int[20] mat;
int *pointer = mat;
free(pointer);
pointer = NULL;

Muita calma.

  1. Você não usa free sem malloc
  2. Seu código não está correto.

o correto seria algo assim:

int num = 5;
int *ptr = #

Isso quer dizer que o ponteiro ptr recebe o endereço de num. Resumindo, ptr aponta para o endereço da variável num. Quando não estiver mais utilizando o ponteiro defina-o como NULL

  1. Você usa free(…) somente quando você alocar memória com malloc(…).
  2. Em linguagem C você aloca memória com malloc(…) e desaloca com free(…)
  3. Em Linguagem C++ você aloca memória com new e desaloca com delete
  4. C não é C++

Vou deixar alguns links que poderão lhe ajudar:
Super básico de ponteiros
Alocação de memória com malloc(…)
Alocação de memória com new

Vai ajudar bastante estes:
Boa referência de C++
Boa referência de C e C++

3 curtidas

Mas com matrizes. você pode atribuir o nome, não pode? Aprendi assim na apostila.

Com matrizes é assim mesmo int *pointer = mat;,

int num = 5;
int *ptr = #

O código acima foi só um exemplo. Quando referi que o código não está correto foi quanto ao uso de free(…).

Ah ta. Muito obrigado!