アプリ版:「スタンプのみでお礼する」機能のリリースについて

コンピューターとプログラムのバッファが1GBある時に2MBを使う時、残りのバッファは998MB残っていますがこれは使い終わったら、また2MB戻って来てまた元の1GBになるらしいのですが、これは、(使い終わったら元の1GBになる)プログラムが消えていくのはありえないからでしょうか?教えて頂けると幸いです。

質問者からの補足コメント

  • ちなみになのですが、バッファとは何ですか?と聞かれて、あなたはどんな回答をするのか知りたいです。差し支えなければ教えて頂けると幸いです。

    No.15の回答に寄せられた補足コメントです。 補足日時:2023/10/18 16:26

A 回答 (20件中11~20件)

質問者> >このバッファは減りはしないらしいのですが、



他の回答者> そのバッファについて書かれている原典を、そのまま、ここのサイトに提示していただけませんでしょうか。

質問者> すみません。原典はなくて、studio.hのバッファに関する疑問で、

「原典」という意味が通じてないようですが(多分「出典」と聞いた方が良かった)、
「このバッファは減りはしないらしいのですが、」
は「らしい」ということは、「減りはしない」と誰かから聞いたか、何かを読んだかですよね?

その「誰からどういう状況でなんと聞いたか(正確に詳しく)」あるいは、「https:~~~のサイトに書いてあった」「○○という書籍の○○の章に書いてあった」というのを書きましょう。

皆さん、質問の意味を何とか汲み取って回答しようと努力しているので、あなたも努力しましょう。

もし、「どこかで何か聞いたような気がするだけで詳しくは覚えてない」程度の記憶であれば、まるごとすっぱり忘れてしまうのが良いと思います。
    • good
    • 1

>バッファが0になる事はないという事ですね?



プログラムで確保したバッファを、そのプログラムが解放(free)すれば、
そのバッファはなくなります。(そのプログラムからそのバッファを使用できなくなります)
それをバッファが0になったとは、いわないので、バッファが0になることはありません。
    • good
    • 0
この回答へのお礼

プログラムが消えていくというのは、前に組んだプログラムが消えていくという事なのですが。教えて頂けると幸いです。

お礼日時:2023/10/16 06:45

>つまり、私の回答は合っているのでしょうか?



あなたが言っているバッファの意味ですが、以下のように解釈します。
「プログラムのバッファが1GBある」とは、
「プログラムで確保した(mallocで確保した)メモリが1GBある」と同義とする。
「プログラムが消えていく」とは
「プログラムが終了する」と同義とする。

上記の前提での回答です。
プログラムで確保した(mallocで確保した)メモリが1GBあって、2MBを使ったとき、
の残りは998MBになります。使い終われば2MBの領域がまた使えるようになるので、1GBが使用可能に
なります。
従って、ここまでは、合ってます。

>これは、(使い終わったら元の1GBになる)プログラムが消えていくのはありえないからでしょうか?
この意味が、不明です。(なので、合ってるか、合ってないかはわかりません)

メモリを1GB確保した状態で、プログラムが終了した場合は、OSによってその1GBは、強制的に解放され、
他のプログラムが使用可能になるように回収されます。
(その終了したプログラムが使いっぱなしになることはありません)
通常は、プログラムが終了する前に、そのプログラムが使用したメモリを解放するのが一般的な方法です。
    • good
    • 0
この回答へのお礼

とすると、バッファが0になる事はないという事ですね?教えて頂けると幸いです。

お礼日時:2023/10/15 18:27

Chat GPTに以下の質問を投げてみました。


参考になれば幸いです。

質問:
C言語 バッファについて
コンピューターとプログラムのバッファが1GBある時に2MBを使う時、残りのバッファは998MB残っていますがこれは使い終わったら、また2MB戻って来てまた元の1GBになるらしいのですが、これは、(使い終わったら元の1GBになる)プログラムが消えていくのはありえないからでしょうか?

ChatGPTの回答
C言語や他のプログラムがメモリを使用する方法について誤解が生じているようです。メモリバッファを使用して2MBのメモリを割り当てた場合、それが使い終わった後でも、元の1GBのメモリは変わりません。プログラムが終了しても、メモリは通常、再び使用可能な状態に戻ります。

メモリはプログラムの実行に使用され、メモリを割り当てることはプログラムの一部として行われます。メモリが解放されるか、プログラムが終了すると、そのメモリは他の用途に再利用できるようになります。したがって、メモリバッファを2MB使用しても、そのメモリはプログラムが終了したり、メモリが解放されたりすると、元の1GBに戻ります。

プログラムが実行中である限り、そのプログラムが割り当てたメモリは利用可能です。しかし、プログラムが終了したり、メモリを解放したりすると、そのメモリ領域は他のプログラムやシステムによって使用できるようになります。このプロセスはコンピュータのメモリ管理に関連し、プログラムが終了してもメモリがクリアされる仕組みがあります。

プログラムの実行とメモリの割り当ておよび解放は、コンピュータの基本的な機能の一部であり、メモリリーク(メモリの適切な解放を行わないことによる問題)などの問題を防ぐために、適切なプログラム設計とメモリ管理が重要です。
    • good
    • 0
この回答へのお礼

つまり、私の回答は合っているのでしょうか?教えて頂けると幸いです。

お礼日時:2023/10/15 14:43

Chat GPTに問い合わせてみました。


C言語のバッファに関する回答です。

C言語における「バッファ」は、通常、データを一時的に格納するためのメモリ領域を指します。
バッファは、データの読み取りや書き込みを効率的に行うために使用されます。主に次の2つの種類のバッファがあります:

入力バッファ(Input Buffer):データを読み取るための一時的なメモリ領域です。
例えば、ユーザーからのキーボード入力やファイルからのデータ読み取り時に、読み取ったデータを一時的に格納するために使用されます。
C言語では、scanf関数やfgets関数など、標準入力からデータを読み取る際に入力バッファを使用します。

char buffer[256];
scanf("%s", buffer);
この例では、bufferが入力データを一時的に格納するための入力バッファです。

出力バッファ(Output Buffer):データを書き込むための一時的なメモリ領域です。
例えば、文字列をファイルに書き込む際に、文字列を一時的に格納するために使用されます。
C言語では、fprintf関数やfputs関数など、データをファイルに書き込む際に出力バッファを使用します。

FILE *file = fopen("output.txt", "w");
char buffer[256];
fprintf(file, "This is a message: %s", buffer);
この例では、bufferが出力データを一時的に格納するための出力バッファです。

バッファは、プログラムのパフォーマンスを向上させるために使用されることがあります。
データを一度に大きな塊で読み取り、バッファに格納してから処理することで、I/O操作の回数を減らし、効率的なデータ処理を実現できます。
ただし、バッファのサイズや管理には注意が必要であり、適切なサイズとデータの整合性を確保することが重要です。

バッファを使用する際には、データのオーバーフローやアンダーフローに気を付け、セキュリティの観点からバッファオーバーフロー攻撃を防ぐために注意が必要です。
    • good
    • 0

>原典はなくて、studio.hのバッファに関する疑問で、プログラムで使う関数がバッファに用意されていて、その関数を使ったら、またバッファに戻り、次の関数をまた使い、また戻す。



具体的にその関数名を提示していただけませんでしょうか。また、そのバッファに関する定義も提示していただけませんでしょうか。

私の知る限りでは、プログラムから呼び出し可能な関数はていぎされていますが、バッファに関する定義は見当たりませんでした。(見落としているかもしれませんが)
プログラムから呼び出し可能な関数の一覧は、
https://ja.wikibooks.org/wiki/C%E8%A8%80%E8%AA%9 …
に記述されています。

バッファに関する定義は、一般的にはアプリケーションプログラムで定義するもので、stdio.h内に定義されるものではないかと思います。
ここで、私が述べたバッファとは、ファイルの読み書きなどの時に、stdio.hで記述された関数(fread,fwrite)から読み込んだレコードの内容を受け取る領域、もしくは、ファイルに書き込むべき内容を設定した領域のことを言っています。もし、違う意味であなたが使用されている場合は、その旨、補足してください。
    • good
    • 0

私が『プログラムのバッファーってなんでしょうか?』と補足を求めているのに貴方は


『バッファが1GBある時です。教えて頂けると幸いです。』と返す

だから、バッファーて何?サイズなんて本筋じゃないって

とてもコンピューターやプログラムを勉強している?人の言葉とも思えない

『プログラムが消えていく』ってのも謎だし
テキスト・解説書にそんな言葉の使い方は存在しないはずだよね
    • good
    • 1

>このバッファは減りはしないらしいのですが、例えば、998MBが996MBになる事はないらしいのですが。



そのバッファについて書かれている原典を、そのまま、ここのサイトに提示していただけませんでしょうか。
現状では、バッファについての定義が不明な為、回答者と質問者様との間で話がかみ合っていません。
    • good
    • 0
この回答へのお礼

すみません。原典はなくて、studio.hのバッファに関する疑問で、プログラムで使う関数がバッファに用意されていて、その関数を使ったら、またバッファに戻り、次の関数をまた使い、また戻す。という感じです。教えて頂けると幸いです。

お礼日時:2023/10/14 20:46

『コンピューターとプログラムのバッファが1GBある時』


もうこの時点で何を言っているのか不明になります

プログラムのバッファーってなんでしょうか?
プログラム内で利用する作業用メモリのことなんでしょうか?
それともプログラムが稼働するコンピュータ上のメインメモリのことなんでしょうか?
何の話なのか分からないのでそこから先もどう話が進んでいくのか・・・・
    • good
    • 0
この回答へのお礼

すみません。バッファが1GBある時です。教えて頂けると幸いです。

お礼日時:2023/10/14 16:27

プログラムが確保したメモリー領域のことを言ってるなら残ったままですよ。

malloc で確保したメモリーはfree する必要があります。
java みたいにガベージコレクションは勝手にやってくれません。
    • good
    • 0
この回答へのお礼

バッファが残り998MBで、2MB戻って来て、バッファが元の1GBになる事はないのでしょうか?教えて頂けると幸いです。このバッファは減りはしないらしいのですが、例えば、998MBが996MBになる事はないらしいのですが。詳しく教えて頂けると幸いです。

お礼日時:2023/10/14 16:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています