タグ付けされた質問 「stack」

スタックは、後入れ先出し(LIFO)の抽象データ型とデータ構造です。コールスタックに関する質問については、代わりに[callstack]または[stack-pointer]を使用してください。Haskellビルドツールに関する質問については、代わりに[haskell-stack]を使用してください。C ++の標準スタックに関する質問については、代わりに[stdstack]を使用してください。

8
配列、ヒープ、スタック、値のタイプ
int[] myIntegers; myIntegers = new int[100]; 上記のコードで、新しいint [100]はヒープ上に配列を生成していますか?C#を介してCLRで読んだことから、答えは「はい」です。しかし、私が理解できないのは、配列内の実際のintに何が起こるかです。それらは値の型なので、たとえば、ボックスにボックス化する必要があると思います。たとえば、myIntegersをプログラムの他の部分に渡すと、常に残っているとスタックが乱雑になります。 。それとも私は間違っていますか?私はそれらがボックス化されるだけで、配列が存在する限りヒープ上に存在すると思います。
134 c#  arrays  memory  stack  heap 

10
Android:アクティビティスタックをクリアする
アプリケーションにいくつかのアクティビティがあります。流れは非常に複雑です。ログアウトアプリケーションをクリックすると、ログイン画面に移動し、ユーザーはキャンセルボタン(を呼び出すsystem.exit(0))で終了できます ときに私出口やバックボタン、システムがスタックから活動を呼び出し:(私はログイン画面に到達したときにどのように私は呼び出し?スタック内のすべての活動をクリアすることができますfinish()ので、多くの活動があるので実用的ではないではありませんし、いくつかの活動は何時に閉じる必要がありますネイティブカメラ呼び出しアクティビティなど、アクティブです。 validateuser logoutuser = new validateuser(); logoutuser.logOut(); Intent loginscreen = new Intent(homepage.this, Login2.class); (homepage.this).finish(); loginscreen.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(loginscreen);

11
スタックとキューの基本的な違いは何ですか?
スタックとキューの基本的な違いは何ですか? 私が違いを見つけることができないのを助けてください。 スタックとキューをどのように区別しますか? 私はさまざまなリンクで答えを検索し、この答えを見つけました。 高水準プログラミングでは、 スタックは、新しい要素を既存の要素の「上に」配置することによって長くなり、既存の要素の上部から要素を削除することによって短くなる要素のリストまたはシーケンスとして定義されます。これは、「プッシュ」と「ポップ」の数学演算を備えたADT [抽象データ型]です。 キューは、既存の要素の後ろに新しい要素を配置することで追加される要素のシーケンスであり、キューの前にある要素を削除することで短縮されます。ADT [抽象データ型]です。これらの用語には、Java、C ++、Pythonなどのプログラミングで理解できるものがあります。 より詳細な回答はありますか?私を助けてください。
130 stack  queue 

8
Java / Android-完全なスタックトレースを出力する方法
Android(Java)で完全なスタックトレースを出力するにはどうすればよいですか?アプリケーションがnullPointerExceptionまたは何かからクラッシュした場合、次のように(ほぼ)完全なスタックトレースが出力されます。 java.io.IOException: Attempted read from closed stream. com.android.music.sync.common.SoftSyncException: java.io.IOException: Attempted read from closed stream. at com.android.music.sync.google.MusicSyncAdapter.getChangesFromServerAsDom(MusicSyncAdapter.java:545) at com.android.music.sync.google.MusicSyncAdapter.fetchDataFromServer(MusicSyncAdapter.java:488) at com.android.music.sync.common.AbstractSyncAdapter.download(AbstractSyncAdapter.java:417) at com.android.music.sync.common.AbstractSyncAdapter.innerPerformSync(AbstractSyncAdapter.java:313) at com.android.music.sync.common.AbstractSyncAdapter.onPerformLoggedSync(AbstractSyncAdapter.java:243) at com.google.android.common.LoggingThreadedSyncAdapter.onPerformSync(LoggingThreadedSyncAdapter.java:33) at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:164) Caused by: java.io.IOException: Attempted read from closed stream. at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:148) at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:159) at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:212) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:64) at android.net.http.AndroidHttpClient.getUngzippedContent(AndroidHttpClient.java:218) at com.android.music.sync.api.MusicApiClientImpl.createAndExecuteMethod(MusicApiClientImpl.java:312) …

9
Javaスタックサイズを増やす方法
この質問をして、JVMのランタイムコールスタックサイズを増やす方法を知りました。私はこれに対する答えを得ました。また、Javaが大規模なランタイムスタックが必要とされる状況をどのように処理するかに関連する多くの有用な答えとコメントも得ました。質問の回答をまとめました。 もともとは、JVMスタックサイズを増やして、プログラムをなしで実行するようなプログラムにしたかったのStackOverflowErrorです。 public class TT { public static long fact(int n) { return n < 2 ? 1 : n * fact(n - 1); } public static void main(String[] args) { System.out.println(fact(1 << 15)); } } 対応する構成設定は、java -Xss...十分に大きな値を持つコマンドラインフラグです。TT上記のプログラムの場合、OpenJDKのJVMでは次のように機能します。 $ javac TT.java $ java -Xss4m TT 回答の1つは、-X...フラグは実装に依存することも指摘しています。使っていた java version "1.6.0_18" OpenJDK …

10
C ++でのスタックとヒープの適切な使用法
私はしばらくプログラミングをしてきましたが、ほとんどがJavaとC#でした。実際に自分でメモリを管理する必要はありませんでした。私は最近C ++でプログラミングを始めましたが、いつスタックに格納するか、いつヒープに格納するかについて少し混乱しています。 非常に頻繁にアクセスされる変数はほとんど使用されない変数であるスタックとオブジェクトに格納する必要があり、大きなデータ構造はすべてヒープに格納する必要があると私は理解しています。これは正しいですか、それとも間違っていますか?

30
getMinimum()がO(1)になるようにスタックを設計する
これはインタビューの質問の1つです。getMinimum()関数がスタック内の最小要素を返すように、整数値を保持するスタックを設計する必要があります。 例:以下の例を検討してください ケース#1 5->トップ 1 4 6 2 getMinimum()が呼び出されると、最小要素である1を返す必要があります スタック。 ケース#2 stack.pop() stack.pop() 注:5と1の両方がスタックからポップされます。この後、スタック のように見えます 4->トップ 6 2 getMinimum()が呼び出されたときは、2を返す必要があります。これは、 スタック。 Constriants: getMinimumはO(1)の最小値を返す必要があります スペースの制約も設計時に考慮する必要があり、余分なスペースを使用する場合は一定のスペースにする必要があります。

6
プログラムのC / C ++最大スタックサイズ
100 X 100アレイでDFSを実行したい。(たとえば、配列の要素はグラフのノードを表します)したがって、最悪の場合を想定すると、再帰関数呼び出しの深さは最大10000になり、各呼び出しは最大で20バイトを使用します。それで、スタックオーバーフローの可能性があるのは実行可能な手段ですか? C / C ++のスタックの最大サイズはいくつですか? 両方のgccを指定してください 1)Windows上のcygwin 2)Unix 一般的な制限は何ですか?
115 c++  c  stack 

8
DIVを互いの上に積み上げますか?
次のような複数のDIVを積み重ねることは可能ですか? <div> <div></div> <div></div> <div></div> <div></div> </div> これらすべての内部DIVのX位置とY位置が同じになるようにするには?デフォルトでは、それらはすべて互いに下にあり、直前のDIVの高さだけY位置を増やします。 なんらかのフロートやディスプレイ、または他のトリックが噛み付くような気がします。 編集:親DIVには相対位置があるため、絶対位置を使用しても機能しないようです。
115 css  html  stack  css-float 


2
Delphiプログラムまたはコンパイラが生成したデバッグ情報からローカル変数情報(アドレスとタイプ)をどのように抽出しますか?
私の目標は: Delphiでコンパイルされた32ビットまたは64ビットのWindowsプログラムで中断されたスレッドを指定して、スタックをウォークする(実行可能) スタックエントリを指定して、各メソッドのローカル変数とその値を列挙します。つまり、少なくとも、それらのアドレスとタイプ(integer32 / 64 / signed / unsigned、string、float、record、class ...)を見つけ、それらの組み合わせを使用して値を見つけることができます。 1つ目は問題ありませんが、この質問に関する2つ目です。高レベルで、Delphiのスタックエントリを指定してローカル変数をどのように列挙しますか? 低レベルでは、これは私が調査してきたものです: RTTI:メソッドに関するこの種の情報はリストしません。これは、私が実際に現実的な選択肢であると思ったものではありませんでしたが、とにかくここにリストします。 デバッグ情報:デバッグビルド用に生成されたデバッグ情報をロードします。 マップファイル:詳細なマップファイル(テキスト形式のファイルです。ファイルを開いて確認してください)にも、ローカル変数情報は含まれていません。基本的には、アドレスとソースファイルの行番号のリストです。アドレスとファイルの行の関連付けに最適です。たとえば、樋の青いドットです。より詳細な情報には不向き リモートデバッグ情報(RSMファイル)- その内容や形式に関する既知の情報はありません。 TD32 / TDSファイル:現在の研究内容。それらは他の多くの情報の中でグローバルとローカルのシンボルを含んでいます。 ここで遭遇する問題は次のとおりです。 TD32ファイル形式のドキュメントはありません(見つけられます)。 それらに関する私の知識のほとんどは、それらを使用するJedi JCLコード(JclTD32.pas)からのものであり、そのコードの使用方法や、ローカル変数を表示するのに十分な構造があるかどうかはわかりません。私はそれがグローバルシンボルを処理することを確信していますが、ローカルについては非常に不確かです。多種多様な定数が定義されており、形式に関するドキュメントはありません。それらが何を意味するかを読むために、私は推測しておきます。ただし、これらの定数とその名前はどこかに由来している必要があります。 TDS情報を使用して見つけることができるソースは、ローカルシンボルをロードまたは処理しません。 これが正しいアプローチである場合、この質問は「TDS / TD32ファイル形式のドキュメントはありますか?ローカル変数をロードするコードサンプルはありますか?」 コードサンプルは必須ではありませんが、最小限の場合でも非常に便利です。


2
C#のスタックサイズがちょうど1 MBなのはなぜですか?
今日のPCには大量の物理RAMがありますが、それでも、C#のスタックサイズは32ビットプロセスの場合は1 MB、64ビットプロセスの場合は4 MBです(C#のスタック容量)。 CLRのスタックサイズがまだ非常に制限されているのはなぜですか? そして、なぜそれがちょうど1 MB(4 MB)であるのですか(2 MBや512 KBではないのですか)なぜこれらの金額を使用することにしたのですか? その決定の背後にある考慮事項と理由に興味があります。
102 c#  stack  clr  stack-size 

5
x86アセンブリのレジスタで使用されるプッシュ/ポップ命令の機能は何ですか?
アセンブラについて読んでいると、プロセッサの特定のレジスタをプッシュし、後でもう一度ポップして以前の状態に戻すと書いている人によく出くわします。 どうすればレジスターをプッシュできますか?どこにプッシュされますか?なぜこれが必要なのですか? これは、単一のプロセッサ命令に要約されますか、それとももっと複雑ですか?

10
なぜスタックは通常下向きに成長するのですか?
私が個人的に精通しているアーキテクチャ(x86、6502など)では、スタックは通常下向きに成長します(つまり、スタックにプッシュされるすべてのアイテムは、増加したSPではなく減少したSPになります)。 これの歴史的根拠について疑問に思っています。統合されたアドレススペースでは、スタックをデータセグメントの反対側から(たとえば)開始するのが便利なので、2つの側が中央で衝突した場合にのみ問題が発生します。しかし、なぜスタックは伝統的にトップの部分を獲得するのでしょうか?特に、これが「概念」モデルとは正反対であることを考えると、 (また、6502アーキテクチャーでは、単一の256バイトのページにバインドされているにもかかわらず、スタックも下方向に大きくなることに注意してください。この方向の選択は任意です。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.