void get_memory(T_s8 *p , T_S16 num)
{
p = (T_s8 *)malloc(sizeof(T_s8)*num);
}
void TEST(void)
{
T_s8 *str = NULL;
get_memory(str, 100);
strcpy(str, "hello world");
}
分析:
值传递不能改变str的值,所以实参str的值依然为NULL,不能执行strcpy(str, "hello world");会发送段错误。
char * get_memory(void)
{
char p[] = "hello world";
return p;
}
void TEST(void)
{
char *str = NULL;
str = get_memory();