社区
C语言
帖子详情
内存动态传递的问题
hai00jiao
2009-11-25 11:16:43
#include<iostream>
using namespace std;
void getmemory(char*p,int num)
{
p=(char*)malloc(sizeof(char)*num);
};
int main()
{
char*str=NULL;
getmemory(str,10);
strcpy(str,"hello");
return 0;
}
谁能给解释下错误的原因,越详细越好
...全文
103
3
打赏
收藏
内存动态传递的问题
#include using namespace std; void getmemory(char*p,int num) { p=(char*)malloc(sizeof(char)*num); }; int main() { char*str=NULL; getmemory(str,10); strcpy(str,"hello"); return 0; } 谁能给解释下错误的原因,越详细越好
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
高性能架构探索
2009-11-25
打赏
举报
回复
你把str传递给getmemory后,p只是str的一个副本,所以给P分配内存,而str并没内存可用,所以strcpy(str,10)出错
james_hw
2009-11-25
打赏
举报
回复
。。。在getmemory(char*p,int num) 中,p只是个复制品,所以不行。具体内容建议看一下c语言的书籍比较好。
解决方法有两种:
char *getmemory(char*p,int num)
{
p=(char*)malloc(sizeof(char)*num);
return p;
};
void getmemory(char**p,int num)
{
*p=(char*)malloc(sizeof(char)*num);
};
linwendong1982
2009-11-25
打赏
举报
回复
char*p应该为char**p,里面*P = =(char*)malloc(sizeof(char)*num);
传递
动态
内存
遇到的
问题
本文探讨了C/C++中
动态
内存
管理的常见
问题
,包括函数间
传递
动态
内存
时可能遇到的陷阱,并提供了三种实用的解决方案。
C/C++中
传递
动态
内存
的一些
问题
本文探讨了C/C++中
动态
内存
管理的常见
问题
,包括指针
传递
导致的
内存
泄漏及局部数组与全局数组返回的差异。提供了实用解决方案。
C语言有关
内存
和
动态
分配
内存
传递
问题
本文详细探讨了C语言中四种不同
内存
管理函数的行为,并通过示例代码解释了每种情况下的运行结果。此外,还介绍了三种实现
动态
内存
分配的方法及其应用场景。
动态
内存
传递
问题
本文分析了一段存在
内存
管理
问题
的C程序,并提供了两种解决方案。一种是通过二级指针
传递
内存
地址,另一种是直接返回分配的
内存
地址。文章强调了正确使用指针和避免
内存
泄漏的重要性。
c/c++函数间
动态
内存
传递
问题
本文探讨了在C/C++中通过函数
传递
指针并尝试在函数内部为其分配
内存
的
问题
。解释了为何简单地在函数内部使用malloc或new不会改变原始指针的指向,并提供了正确的做法,包括使用指针引用或二级指针。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章