小编use*_*766的帖子

在C中,如何释放全局静态指针?

在C中,请查看此代码,

static char* test = NULL;
typedef struct
{
    char* member1;
}TestStruct;


void testCode()
{
    TestStruct ts;
    test = malloc(10*sizeof(char));
    //assign characters to each test 0 ~ 9 positions 
    ts.member1 = test;
    // using ts, then can I free static pointer test using free()?
    free(test);
}
Run Code Online (Sandbox Code Playgroud)

1)这个免费代码是对的吗?
2)分配的内存测试指向堆,对吗?
3)测试是在.bss?
4)如果testCode()函数可以在线程中调用,测试就是一个,对吗?但每次线程调用testCode()时,测试都会被赋予新指针并使内存泄漏,对吗?那么,我可以使用此代码来避免它吗?

 Mutex_Start
 if(test == NULL)
     test = malloc(10*sizeof(char));
 Mutex_End
Run Code Online (Sandbox Code Playgroud)

请帮我.

c free static pointers

4
推荐指数
1
解决办法
1628
查看次数

标签 统计

c ×1

free ×1

pointers ×1

static ×1