Как освободить указатель, возвращаемый функцией?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char* f(void) {
  char *x;
  x = malloc(sizeof(char) * 4);
  strcpy(x, "abc");
  return(x);
}

int main(void) {
  char *a;
  a = f();
  printf("%s", a);
  free(a);
  return(0);
}

Нужно ли освобождать переменную xв функции? Если да, то как это возможно, когда мне нужно вернуть его?

11
задан pb2q 9 August 2012 в 22:37
поделиться