Place de malloc() et free()
J'ai une question concernant l'utilisation de malloc et de free. Existe-t-il des règles sur le placement de free par rapport à malloc dans le programme? Par exemple, j'ai l'impression que celui-ci doit se situer à la même "hauteur" par rapport aux blocs d'instructions:
Code:
1 2 3 4 5 6 7 8
| char* exemple = (char*)malloc(10 * sizeof(char));
if (test)
{
free(exemple);
return 1;
}
free(exemple);
return 0; |
Est-ce que les deux free() vont marcher comme il faut? Enfin, dans ce cas précis je crois bien que oui, mais y a-t-il des règles à ce sujet ou bien peut-on agencer son programme comme on veut?