麻烦告诉我下面错在哪 详细介绍下传递动态内存 谢谢

[复制链接]
查看11 | 回复1 | 2010-8-24 21:55:55 | 显示全部楼层 |阅读模式
#include
void GetMemory(char *p,int num)
{
p=(char *)malloc(izeof(char *)*num);
};
int main()
{
char *str=NULL;
GetMemory(str,100);
strcpy(str,100);
return 0;
}

回复

使用道具 举报

千问 | 2010-8-24 21:55:55 | 显示全部楼层
/*首先,要理解什么是形参。这里GetMemory(str,100);是把str指向的地址传进来,也就是它初始化的NULL,系统调用函数时会创建一个临时的指针,也指向NULL,作为p的值。修改的的办法很多,比如,修改函数返回值,返回申请的内存的开始位置,或者,参数改成指向指针的指针...下面的我改成了后面一种,用malloc申请的内存记得用free释放,以免造成内存泄露*/#includevoid GetMemory(char **p,int num){ *p=(char *)malloc(izeof(char *)*num);};int main(){char *str=NULL;Get
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行