C语言内存分配问题

char * createStr() {

    char char1= 'm';
    char char2= 'y';

    char *str = (char *) malloc(sizeof(char) * 3);
    str[0] = char1;
    str[1] = char2;
    str[2] = '\0';

    return str;

}

这样的函数 malloc了 字符串
我该怎么free呢
如果不free 因为这个函数要执行很多次 那不是会分配很多内存了

阅读 2.9k
2 个回答

createStr的调用者free

可以采用static 修饰 str指针,然后判断str!=NULL的情况下才malloc ,这样子,多次调用也不用malloc ,外部都不用free,因为只会malloc一次内存空间。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进