どうも、ちょげ(@chogetarou)です。
配列(array)をゼロ(0)埋めする方法を紹介します。
方法

配列(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));
コメント