😸

[C] malloc 関数

に公開

機能

動的にメモリ領域を確保する標準ライブラリ関数[1]

使用例

int *p = (int*)malloc(sizeof(int)); として1つ分のintを確保する

\n は改行を表す エスケープシーケンス[2]

コード

int *p = (int*)malloc(sizeof(int));
if(p != NULL) {
    *p = 10;
    printf("%d\n", *p);
    free(p);
}
全文
#include <stdio.h>
#include <stdlib.h>
void main() {
    int *p = (int*)malloc(sizeof(int));
    if(p != NULL) {
        *p = 10;
        printf("%d\n", *p);
        free(p);
    }
}

実行結果

10

malloc で配列を確保し、変数から表示する

コード

int n = 3;
int *arr = (int*)malloc(n * sizeof(int));
for(int i=0;i<n;i++) arr[i] = i * 2;
for(int i=0;i<n;i++) printf("%d ", arr[i]);
free(arr);
全文
#include <stdio.h>
#include <stdlib.h>
void main() {
    int n = 3;
    int *arr = (int*)malloc(n * sizeof(int));
    for(int i=0;i<n;i++) arr[i] = i * 2;
    for(int i=0;i<n;i++) printf("%d ", arr[i]);
    free(arr);
}

実行結果

0 2 4 
脚注
  1. 実行時に必要な分だけプログラム内でメモリを割り当てる。 ↩︎

  2. 改行やタブなど、画面に表示されない制御文字のこと。 ↩︎

Discussion