- 输入特性:
- 在主调函数中分配内存,被调函数使用
- 输出特性:
- 被调函数中分配内存,主调函数使用
void func(char * p)
{
strcpy(p, "helloworld");
}
void test01()
{
//分配到栈上
char buf[1024] = { 0 };
func(buf);
printf("%s\n", buf);
}
void printString(char * str)
{
printf("%s\n", str);
}
void test02()
{
//分配到堆区
char * p = malloc(sizeof(char) * 64);
memset(p, 0, 64);
strcpy(p, "helloworld");
printString(p);
}
void allocateSpace(char ** pp)
{
char * temp = malloc(sizeof(char) * 64);
memset(temp, 0, 64);
strcpy(temp, "hello world");
*pp = temp;
}
void test03()
{
char * p = NULL;
allocateSpace(&p);
printf("%s\n", p);
}