私は練習用に作成したこのプログラムがなぜ正しく動作しないのか知りたいです。プログラムは、「配列」と呼ばれる配列に置かれた5つの数字を尋ねます。 2つのVOID関数もあります。一つは数値を取得する関数、cicleとscanf命令には関数を使う関数、もう一つは配列に5つの数値を出力する関数です。問題は、印刷された数字が最初のものにすぎないということです。4.何が問題なのですか? P.P.私の無知のため申し訳ありませんが、私は初心者です。ここでは、4
に等しいsizeof(int)
プログラムを実行する環境ではこのシンプルなCプログラムで何が問題になりますか?
#include <stdio.h>
#include <stdlib.h>
void
array_print(int array[],size_t size){
int i;
for(i=0;i<size;i++){
printf("%i ",array[i]);
}
}
void
get_num(int array[],size_t size){
int i;
for(i=0;i<size;i++){
scanf("%i",&array[i]);
}
}
int
main(){
int array[5];
size_t size;
size=sizeof(int);
printf("Insert 5 numbers: ");
get_num(array,size);
array_print(array,size);
return 0;
}
これを確認できますか?> size = sizeof(int); - > size = sizeof(配列); –
'size = sizeof(array)/ sizeof(* array);' – Lundin
'array'はいくつかの' int'を含んでいます。あなたが 'sizeof(int)'をやっている間に - 例えば一つの 'int'のサイズを取得します。さらに、配列のintまたはsizeのサイズはあなたにとって役に立たない!あなたが必要とするのは、配列内のintの数です。あなたの 'size'を' count'に名前を変更し、Lundin – fukanchik