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);
}
この場合、を使用する開発者はClassA::getMyUrl
、URLに割り当てられたメモリを解放することを忘れないでください。それを行うためのよりユーザーフレンドリーな方法はありますか?
重要:Arduinoボードのメモリ制限のため、全体を返したくはありませんObjectB
。生成されたものだけを返します。getMyUrl
また、長い文字列である可能性があるため、メソッドで引数として提供されるバッファにコピーしたくありません。
アップデート:
私は十分に明確ではなかったに違いありません:)。私が達成したいこと:
ClassB b
a.getMyUrl()から戻るとき、メモリに入れたくない- developerMethodから戻るとき、私は解放せずにメモリに
ClassA a
も メモリにも入れたくありません。char* url
- 文字列に対してchar*を使用する可能性があります
ここでmallocを使用するのは間違っていることを私は知っています。そのため、おそらくmallocを取り除き、「自動」(少なくとも開発者の書き込みの観点からdeveloperMethod
)メモリ管理を行うためにこの質問をしました。
達成するのは難しい/不可能かもしれませんが、それが不可能な場合でも、私に知らせてください。そのような回答を受け入れます(誰かが確認した場合、または数日以内に他の回答が表示されない場合)。