[C言語]配列をゼロ埋めするには?

C言語

どうも、ちょげ(@chogetarou)です。

配列(array)をゼロ(0)埋めする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(array)をゼロ(0)埋めする方法は、3つあります。

for文

1つ目は、for文を使う方法です。

まず、配列のインデックスをfor文でループします。

そして、for文のループ処理で、配列のインデックスの要素に「0」を代入します。

//myArray=配列名
int n = sizeof(myArray) / sizeof(myArray[0]); //配列の要素数
for (int i = 0; i < n; i++) {
    myArray[i] = 0;
}

上記のfor文は、配列の全要素をゼロ埋めします

使用例

#include <stdio.h>

int main(void){
    int nums[5] = { 1, 2, 3, 4, 5 };
    int n = sizeof(nums) / sizeof(nums[0]);
    
    //配列をゼロ埋め
    for (int i = 0; i < n; i++) {
        nums[i] = 0;
    }
    
    //配列の要素を表示
    for (int i = 0; i < n; i++) {
        printf("%d ", nums[i]);
    }
    
    return 0;
}
出力:
0 0 0 0 0

while

2つ目は、whileを使う方法です。

まず、配列のインデックスをwhileでループします。

そして、whileのループ処理で、配列のインデックスの要素に「0」を代入します。

//myArray=配列名
int n = sizeof(myArray) / sizeof(myArray[0]); //配列の要素数
int i = 0;
while(i < n) {
    myArray[i] = 0;
    i++;
}

上記のwhileは、配列をゼロ埋めします。

使用例

#include <stdio.h>

int main(void){
    int nums[5] = { 1, 2, 3, 4, 5 };
    int n = sizeof(nums) / sizeof(nums[0]);
    
    //配列をゼロ埋め
    int i = 0;
    while(i < n) {
        nums[i] = 0;
        i++;
    }
    
    //配列の要素を表示
    for (int i = 0; i < n; i++) {
        printf("%d ", nums[i]);
    }
    
    return 0;
}
出力:
0 0 0 0 0

memset()

3つ目は、memset()を使う方法です。

まず、memset()を呼び出します。

memset()の第1引数に配列、第2引数に「0」を指定します。

そして、memset()の第3引数に、引数に配列を指定したsizeof()を指定します。

//myArray=対象の配列
memset(myArray, 0, sizeof(myArray));

上記のmemset()は、配列をゼロ埋めします。

使用例

#include <stdio.h>

int main(void){
    int nums[5] = { 1, 2, 3, 4, 5 };
    int n = sizeof(nums) / sizeof(nums[0]);
    
    //配列をゼロ埋め
    memset(nums, 0, sizeof(nums));
    
    //配列の要素を表示
    for (int i = 0; i < n; i++) {
        printf("%d ", nums[i]);
    }
    
    return 0;
}
出力:
0 0 0 0 0
スポンサーリンク

まとめ

配列(array)をゼロ(0)埋めする方法は、次の3つです。

  • for文を使う方法
    int n = sizeof(myArray) / sizeof(myArray[0]);
    for (int i = 0; i < n; i++) { myArray[i] = 0; }
  • whileを使う方法
    int n = sizeof(myArray) / sizeof(myArray[0]);
    int i = 0;
    while(i < n) { myArray[i] = 0; i++; }
  • memset()を使う方法
    memset(myArray, 0, sizeof(myArray));

コメント

タイトルとURLをコピーしました