整数の配列を読み込んでポインタとして返す関数を定義しました。ユーザ入力から配列を読み込む関数はガベージ値を返します
1
5242692
1474139472
872394811
-2
これがなぜ起こるか私は理解することはできません。
1
2
3
4
5
このプログラムは、このようなものを出力します。
#include "stdafx.h"
#include <stdio.h>
const int size = 5;
int* getInput();
int main(int argc, _TCHAR* argv[])
{
int* a = getInput();
for(int i = 0; i < size; i++){
printf("%d \n", a[i]);
}
return 0;
}
int* getInput(){
int input[size];
for(int i = 0; i < size; i++){
scanf("%d", &input[i]);
}
return input;
}
問題は、の入力であることです。誰もこの問題で私を助けることができますか?
GetInputの配列がスタックに割り当てられているため、ポインタを返すことはできません。あなたはmallocを使う必要があります。 – perreal