Ada*_*ała 0 c++ memory return arduino
我为Arduino设备编写程序,但问题是一般的(我认为).
假设我有以下代码:
char* ClassB::generateUrl()
{
char* someString = (char*) malloc(...);
// something...
return someString;
}
char* ClassA::getMyUrl()
{
ClassB b;
return b.generateUrl();
}
void developerMethod()
{
ClassA a;
char* url = a.getMyUrl();
print(url);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,使用的开发人员ClassA::getMyUrl
必须记住释放为url分配的内存.有没有更方便用户使用的方法呢?
重要提示:由于Arduino板上的内存限制,我不想返回整体ObjectB
,只返回它生成的内容.并且因为它可能是长字符串,我不想将它复制到getMyUrl
方法中提供的任何缓冲区作为参数.
更新:
我一定不够清楚:).我想要实现的目标:
ClassB b
内存ClassA a
也没有 char* url
内存,没有释放.我知道在这里使用malloc是错误的,这就是为什么我问这个问题,可能摆脱malloc并且"自动"(至少从开发人员写的角度来看developerMethod
)内存管理.
我想这可能很难/不可能实现,但即使这是不可能的,只要让我知道,我会接受这样的答案(如果有人在几天内确认或没有其他答案).
归档时间: |
|
查看次数: |
166 次 |
最近记录: |