函数分配内存???

在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);
}

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus