Chinaunix首页 | 论坛 | 博客
  • 博客访问: 649725
  • 博文数量: 156
  • 博客积分: 7030
  • 博客等级: 少将
  • 技术积分: 1560
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-16 12:46
文章分类

全部博文(156)

文章存档

2009年(3)

2008年(7)

2007年(47)

2006年(99)

我的朋友

分类:

2007-03-16 11:26:44

这个行
char * f(char *p)
{
        p=(char*)malloc(100);
        return p;
}
int main(int argc, char* argv[])
{
        char * str=NULL;
        str=f(str);
        strcpy(str,"hello world");
        printf("%s",str);
        return 0;
}
 
这个则不行
void * f(char *p)
{
        p=(char*)malloc(100);
}
int main(int argc, char* argv[])
{
        char * str=NULL;
        f(str);
        strcpy(str,"hello world");
        printf("%s",str);
        return 0;
}
 
我这还有个
int main(int argc, char* argv[])
{
        char str[100];
        f(str);
        strcpy(str,"hello world");
        printf("%s",str);
        return 0;
}
 
最低级趣味的是我改成(被人评价为多次一举):
void * f(char *p)
{
        p=(char*)malloc(100);
}
int main(int argc, char* argv[])
{
        char str[100];
        f(str);
        strcpy(str,"hello world");
        printf("%s",str);
        return 0;
}
 
最终能说明问题的是
void f(char **p)
{
    (*p)=(char*)malloc(100);
}
int main(int argc, char* argv[])
{
    char *str=NULL;
    f(&str);
    strcpy(str,"hello world");
        printf("%s",str);
    return 0;
}
人外有人,天外有天
阅读(1402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~