エラー: ローカル変数 'res' に関連付けられたスタックメモリのアドレスが返された
2022-02-11 05:25:16
今日、コードを書き出すときに、ある関数の中でローカル配列変数を定義して、戻り値でこのローカル配列変数のアドレスを返しました。
これはかなり愚かなミスです。ローカル変数のアドレスを返していますが、ローカル配列変数はスタック領域にあり、このアドレスのデータは関数が終了すると無意味になってしまいます。この場合どうするかですが、ローカル変数配列にstaticを追加すればいいのです。
よく関数内で変数を定義してこの変数を返すことがありますが、返されるのはこの変数の値であることに注意しましょう
では、この値はどこに格納されているのでしょうか?
C言語の仕組みは、returnの値をeaxレジスタに格納し、システムはeaxに格納された値を受け渡すというものです。
関連
-
error: '.' トークンの前に未修飾の ID が必要です。
-
C++11での移動セマンティクス(std::move)と完全な前進(std::forward)。
-
C++-サンプリング関数 GridSampling (要サンプリング高速化)
-
コンパイルエラー: 制御が非ボイド関数の末尾に達する可能性がある
-
C++ 文字列における c_str(), data(), copy(p,n) 関数の使用法
-
致命的なエラー LNK1169: 1つ以上の多重定義されたシンボルが見つかりました 解決策
-
非静的メンバ関数の無効な使用
-
EclipseのC++コードでシンボル'std'が解決できない問題の解決
-
デバッグエラー Assertion Failed 問題について
-
"name.bat "は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linux の 'pthread_create' への未定義参照問題を解決しました。
-
c++ エラー: 'map' は型名ではありません。
-
C++コンパイルエラー:||error: ld returned 1 exit status|.
-
error: 'vector' does not name a type
-
void* から char* への無効な変換」および「文字列定数から 'char*' への非推奨の変換」を解決 "
-
不完全なクラス型へのポインタが許可されていないのですが、どのようなエラーですか?
-
C++ [エラー] 'std::string {aka std::basic_string<char>}' を 'char*' に変換できないエラー
-
c++ experience summary(1):linux c compile with warning: assign makes pointer from integer without cast reason.
-
文字列がこのスコープで宣言されていない 問題の解決
-
c++ベクトル使用集