| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:分析这个问题?
只看楼主 加入收藏
jinzhong620
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-5-28
收藏
 问题点数:0 回复次数:8 
分析这个问题?

void GetMemory(char *p)

{

p = (char *)malloc(100);

}

void Test(void)

{

char *str = NULL;

GetMemory(str);

strcpy(str, "hello world");

printf(str);

}

请问运行Test函数会有什么样的结果?

答:

char *GetMemory(void)

{

char p[] = "hello world";

return p;

}

void Test(void)

{

char *str = NULL;

str = GetMemory();

printf(str);

}

请问运行Test函数会有什么样的结果?

答:

Void GetMemory2(char **p, int num)

{

*p = (char *)malloc(num);

}

void Test(void)

{

char *str = NULL;

GetMemory(&str, 100);

strcpy(str, "hello");

printf(str);

}

请问运行Test函数会有什么样的结果?

答:

void Test(void)

{

char *str = (char *) malloc(100);

strcpy(str, “hello”);

free(str);

if(str != NULL)

{

strcpy(str, “world”);

printf(str);

}

}

请问运行Test函数会有什么样的结果?

答:

2007-06-22 19:51
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
看了下头两个,一的个错误,因为指针应该按引用调用,二的个错误,因为返回的指针局部变量。


你能不能写紧凑点,看的费力!

Fight  to win  or  die...
2007-06-22 20:17
jinzhong620
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-5-28
收藏
得分:0 

void GetMemory(char *p)

{

p = (char *)malloc(100);

}

void Test(void)

{

char *str = NULL;

GetMemory(str);

strcpy(str, "hello world");

printf(str);

char *GetMemory(void)

{

char p[] = "hello world";

return p;

}

void Test(void)

{

char *str = NULL;

str = GetMemory();

printf(str);

}

Void GetMemory2(char **p, int num)

{

*p = (char *)malloc(num);

}

void Test(void)

{

char *str = NULL;

GetMemory(&str, 100);

strcpy(str, "hello");

printf(str);

}

void Test(void)

{

char *str = (char *) malloc(100);

strcpy(str, “hello”);

free(str);

if(str != NULL)

{

strcpy(str, “world”);

printf(str);

}

}

基本就是这样?

珍惜我们现在所爱的人,不要在一万年以后才说我爱你!
2007-06-22 21:04
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
我帮你重排版吧.... 看得我好累...

void GetMemory(char *p){
p =(char *)malloc(100);
}

void Test(void){
char *str = NULL;
GetMemory(str);
strcpy(str,"hello world");
printf(str);
char *GetMemory(void){
char p[] = "hello world";
return p;
}
void Test(void){
char *str = NULL;
str = GetMemory();
printf(str);
}
Void GetMemory2(char **p, int num){
*p = (char *)malloc(num);
}
void Test(void){
char *str = NULL;
GetMemory(&str,100);
strcpy(str,"hello");
printf(str);
}
void Test(void){
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL){
strcpy(str, “world”);
printf(str);
}
}


基本就是这样?

[此贴子已经被作者于2007-6-22 21:18:57编辑过]


女侠,约吗?
2007-06-22 21:17
jinzhong620
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-5-28
收藏
得分:0 
就是了

珍惜我们现在所爱的人,不要在一万年以后才说我爱你!
2007-06-23 07:59
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
考我眼力和记忆力哇?  呵呵..

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-06-23 21:50
herbert_1987
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:1314
专家分:0
注 册:2007-5-13
收藏
得分:0 
以下是引用I喜欢c在2007-6-23 21:50:35的发言:
考我眼力和记忆力哇? 呵呵..

哈哈 说的也是!


人生重要的不是所站的位置,而是所朝的方向
2007-06-23 21:56
jinzhong620
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-5-28
收藏
得分:0 
怎么了,不好吗?这是我的一个同学给的。

珍惜我们现在所爱的人,不要在一万年以后才说我爱你!
2007-06-24 09:44
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
不是说不好.. 格式..

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-06-24 09:56
快速回复:分析这个问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039502 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved