Я новичок в микроконтроллерах и указателях, и я не уверен, где освободить выделенную память и будет ли этот пример работать правильно:
Пример 1:
char * function(void)
{
char *help;
help = malloc(sizeof(char));
//...
return help;
}
void main(void)
{
char *pointer = function();
//do something with pointer
//do I have to free(pointer); here?
}
Это возможно ли выделить память для помощи в функции и вернуть адрес без памяти, которая должна быть освобождена к концу функции?
- Если да: нужно ли мне освобождать память в основной после использования ?
- Если нет: следующий пример работает правильно?
Пример 2:
void function(char **pointer)
{
*pointer = malloc(sizeof(char));
//...
}
void main(void)
{
char *pointer;
function(&pointer);
//do something with pointer
free(pointer);
}