掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
char型のポインタを戻り値にした関数とメモリ開放について (ID:65587)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ここに書込みをする内容ではなかったらごめんなさい。 char型のポインタを戻り値にするような関数を作ろうと思っています。 そこで気になったのですが、例えば int main() { char a[256]; scrncpy(a, func(), sizeof(a) - 1); printf("結果:%s", a); return 1; } char *func() { char *b; *b = new char[128]; strcpy(b, "適当な文字列"); return b; } こんなソースが有った場合、func関数内のbはdeleteできませんよね? こういう場合、メモリの開放はどうやって行えばよいのでしょうか? そもそも、こういった関数自体、作らない方がよいのでしょうか? (例えば戻り値にするつもりの文字列のポインタをグローバル変数で宣言し て、使い終わったら開放、という形にするなど)。 やりたいことは、ある関数の中で、引数の文字列を操作し、その結果を取得し たいのです。 この結果の文字列の長さは引数の文字列の長さなどによっていくつになるかわ からないため、この関数の中でポインタを宣言してnewで領域を確保している のですが・・・ VC++というよりも、C言語の質問になってしまっていますが、よろしければご 教授板だけないでしょうか? よろしくおねがいいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.