質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

1675閲覧

配列データのメモリ上の配置について

stozuka

総合スコア13

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2019/01/27 13:32

編集2019/01/27 14:03

配列とはデータをメモリ上に一列に並べたデータ構造だと思いますが、ここでいうメモリとは論理メモリのことでしょうか、それとも物理メモリのことでしょうか?

  • 論理メモリと物理メモリについて説明しているサイト (参考)
  • 配列のことについて説明しているサイト (参考)

は見つけられるのですが、その「メモリ上に一列に並んでいるデータ構造」のメモリが論理メモリなのか物理メモリなのかはっきり説明しているサイトは見つけられませんでした。

ご教示よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

「メモリ上に一列に並んでいるデータ構造」のメモリ

は、論理メモリです。一般のアプリからは、論理メモリしか見えません。 (Windowsとか、Linux/Unixでは、物理メモリは、一般アプリに対し、隠蔽されています)
その結果、一般アプリは、物理メモリの配置を気にせずに、連続しているものとみなして動作する事ができます。

歴史的には、論理メモリ=物理メモリの時代(正確には物理メモリだけ)がありました。その時、複数のプログラムを動かすには、アプリ側の対応が必要でした。その後、論理メモリ(論理アドレス)の概念を導入することで、複数のアプリを(見かけ上)同時に動かす事が容易になりました。
大抵の場合、論理/物理メモリの対応は、OSとハードウェアの機能で行われています。

論理メモリと物理メモリについて説明しているサイト (参考)

こちらの説明、分かりやすく書いたつもりかもしれませんが、なんとなく、怪しい。システム領域が物理領域の末尾にあるとあるが、これはほぼ、誤り。(メモリ増設したら、どうなる?) また、OS
といえども、コア以外は、一般アプリと同様に、必要時以外は、メインメモリから、追い出されます。(そうしないとメモリが足りない)

投稿2019/01/27 14:26

編集2019/01/27 14:38
pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikadzuchi

2019/01/28 15:07

システム領域が末尾にあるのは論理メモリの話と混同して書いている気がしますねえ…。
stozuka

2019/01/30 03:48

ご回答ありがとうございました!
guest

0

普通のプログラムから見えるのは論理メモリだけです。
物理メモリを扱うのはOSのコア部分だけです。

投稿2019/01/27 13:53

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stozuka

2019/01/30 03:48

ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問