在solaris unix c中,
是不是不能在函数里分配内存?
例子(出错了),是函数内可以打印,main函数不能打印,是不是在 在函数里分配内存无效??
void charTemp(char *ptr)
{
ptr=(char *)malloc(20);
strcpy(ptr,"123");
printf("test:%s\n",ptr);
return ;
}
int main
{
char * ptr;
charTemp(ptr);
printf("test:%s\n",ptr);
}
---------------------------------------------------------------
这样写是不能把分配的地址传过来了,应该如此:
char * charTemp(void)
{
char * ptr;
ptr=(char *)malloc(20);
strcpy(ptr,"123");
printf("test:%s\n",ptr);
return ptr;
}
int main()
{
char * ptr;
ptr=charTemp();
printf("test:%s\n",ptr);
}
---------------------------------------------------------------
void charTemp(char **ptr)
{
(ptr)=(char )malloc(20);
strcpy((ptr),"123");
printf("test:%s\n",(ptr));
return ;
}
int main()
{
char * ptr;
charTemp(&ptr);
printf("test:%s\n",ptr);
}