C言語でmalloc()を使った問題を解いています。こちらは要素数を入力したら要素数の数だけ1から倍にして順々に表示するものです。そのはずが、表示されるのがでたらめな数値で、どこの部分が原因でそのようになっているのかがわかりません。どこがおかしいのかを教えていただきたいです。
C
1#include <stdio.h> 2#include <stdlib.h> 3 4int main() 5{ 6 int num = 0; 7 int i = 0; 8 9 printf("要素数を入力してください\n"); 10 scanf_s("%d",&num,100); 11 12 printf("%d個の要素を持つ配列相当の領域を確保します\n",num); 13 14 int* array = (int*)malloc(sizeof(int) * num); 15 16 array[0] = 1; 17 for (i = 0; i < num; i = i + 1) 18 { 19 array[i] = array[i - 1] * 2; 20 } 21 22 for (i = num - 1; i >= 0; i = i - 1) 23 { 24 printf("%d\n",array[i]); 25 } 26 27 free(array); 28 29 return 0; 30}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/14 02:30