提问者:小点点

局部变量可以用“malloc”返回局部变量吗?


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

char * upperCase(const char* s)
{
    char * ret = NULL;
    size_t length = strlen(s) + 1;
    ret = (char*)malloc(sizeof(char) * length);
    for (size_t i = 0; i < length; i++) {
        ret[i] = toupper(s[i]);
    }
    return ret;
}

int main()
{
    char* ret = NULL;
    char* input = "HelloWorld";
    ret = upperCase(input);
    printf("value = %s", ret);
    free(ret);
}

上面的代码将一个字符串作为参数并复制该字符串。然后,它将复制字符串的每个元素转换为大写并返回它。

编译器=GCC 6.2

如果使用 malloc 函数,是否可以返回局部变量来终止函数并释放内存?我对仍有记忆的范围没有足够的了解。


共0个答案

相关问题