C > 配列

更新日 2014-09-06
広告

配列サイズを動的に決める方法

mallocを使い、intの配列サイズを動的に決める方法を紹介します。
#include <stdio.h>
#include <stdlib.h>

int main() {
  int i;
  int *int_array;
  int array_size = 5;

  int_array = malloc(sizeof(int) * array_size);

  for (i = 0; i < array_size; i++) {
    int_array[i] = i;
  }

  for (i = 0; i < array_size; i++) {
    printf("%d\n", int_array[i]);
  }
  
  free(int_array);
  return 0;
}
構造体の場合も、同様です。
#include <stdio.h>
#include <stdlib.h>

struct human {
  int id;
  int age;
};
typedef struct human human;

int main() {
  int i;
  human *humans;
  int array_size = 5;

  humans = malloc(sizeof(human) * array_size);

  for (i = 0; i < array_size; i++) {
    humans[i].id = i;
    humans[i].age = i + 11;
  }

  for (i = 0; i < array_size; i++) {
    printf("%d, %d\n", humans[i].id, humans[i].age);
  }
  
  free(humans);
  return 0;
}
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system