在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)
请帮我.