天国にいけるC言語入門 ヘキサ構造体 ver2.2126
char** a; a=(int**)malloc(sizeof(char*)*2);の実行により8バイトメモリが動的に確保されます それらのメモリを解放してみます
char** a; a=(int**)malloc(sizeof(char*)*2);の実行により8バイトメモリが動的に確保されます それらのメモリを解放してみます
ソーラー「
やったね
char型の変数のアドレスを格納するchar*型のポインタ変数のアドレスを格納するchar**型のポインタ変数
を用いて
メモリを確保することができました」
solarplexuss「char**型のポインタ変数を使って
メモリを確保できちゃったい
すごい進歩したね」
ソーラー「そうだね
まだまだ面白くなるのはこれからさ!
ソーラー「
char**型のポインタ変数を使って動的にメモリを確保することができました
char** a;
a=(char**)malloc(sizeof(char*)*2);
が実行されると
malloc(sizeof(char*)*2)
により
char*は4バイトのデータ格納容量を持つため
8バイト分のメモリが確保されます
そのメモリの先頭のアドレスが
戻り値として
malloc(sizeof(char*)*2)
に返されることになるのですが
malloc(sizeof(char*)*2)をchar**型にキャストすることにより
char**型のポインタ変数aに動的に確保したメモリの先頭のアドレスを代入することができます
aはchar**型のポインタ変数なのですが
ポインタ変数なので
このように
💖char**型のポインタ変数aにアドレスが代入されると💖
aに[]演算子を用いた
char*型のポインタ変数
a[0]
a[1]
を生成しchar型のポインタ変数のアドレスデータを代入することができましたね
ところで
みなさん
動的にメモリを確保するとコンピュータはそれらのメモリに
アクセスして使用することができなくなります
あんまり
動的にメモリを確保しすぎるとコンピュータは利用できるメモリが少なくなりフリーズをおこす可能性があります
そこで
動的に確保したメモリに格納されたデータを使用したなら
コンピュータが利用できるメモリを増やすために
動的に確保したメモリを解放してあげるというわけです
char**型のポインタ変数aを使って
char** a;
a=(char**)malloc(sizeof(char*)*2);
のように
動的にメモリを確保したなら
動的に確保したメモリを解放するには
free(a);
を実行します
free(a);
が実行されると
動的に確保したメモリは解放され
コンピュータはそれらのメモリを再び使用できることになりますが
このとき
char**型のポインタ変数aは消去されませんが
char**型のポインタ変数aに格納されていたアドレスデータは消去されます
char*型のポインタ変数
a[0]
a[1]
を生成しchar型のポインタ変数のアドレスデータを
a[0]
a[1]
をつかって
動的にメモリに格納していたなら
それらのメモリに格納されていたchar型のポインタ変数のアドレスデータも消去されます
では実際に
char**型のポインタ変数aを使って動的にメモリを確保し
free(a);
を実行して動的に確保されたメモリを解放してみようよ
そのプログラムはこちらです
👇
#include <stdio.h>
#include <stdlib.h> /* malloc関数を用いるにはヘッダファイル<stdlib.h>をインクルードします*/
int main(void) {
char** a;
a = (char**)malloc(sizeof(char*)*2);
//malloc関数を用いてメモリを8バイト分確保しています
char b=1;
char c=2;
a[0]=&b;
a[1]=&c;
free(a);
return 0;
}
ビルド実行結果
何も表示されません
ソーラー「ビルド実行結果に
何も表示されていませんが
char**型のポインタ変数aを使って動的に確保されたメモリは
free(a);
の実行により解放されています
このとき
char*型のポインタ変数
a[0]
a[1]
を生成しchar型のポインタ変数b,cのアドレスデータ&b,&cを
a[0]=&b;
a[1]=&c;
をつかって
動的に確保したメモリに格納していましたが
動的に確保したメモリに格納されていたアドレスデータ&b,&c
もメモリから消去されています」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます