사실 원래의 목적은 메인함수안에 내용을 최대한 줄여보자고 해서 뭔가 세분화하고있는데

이상하게 배열쪽에서 막혀서 잘안되네여.

웃긴게 입력값으로 7까지 넣으면 잘 작동되는데

왜 8부터는 넣으니까 배열길이가 이상해질까여...


배열길이를 10정도만 되면 세그멘테이션 오류가 뜨고..

7이하로 넣으면 잘 작동하는데

8부터는 넣으면 배열길이가 몇십개라고 떠버리네...


코딩 한동안 안했더니 이런 비극이...


왠지 문제같은건 배열길이를 저렇게 받아서 하면 안되고 저런경우엔 malloc해서 배열만드는것같은데...



#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void f_scanf(int *count);
void f_array(int *array, int input);
void array_sizeof_printf(int input);
void f_array_printf(int *array, int input);

int main(){
    int i;
    int input;
    int temp;
    int array[input];

    f_scanf(&input);
    array_sizeof_printf(input);
    f_array(array, input);
    f_array_printf(array, input);
    return 0;
}

void f_scanf(int *input){    //배열길이 입력받음
    printf("배열 길이를 입력하세여 \n");
    scanf("%d", &*input);
}

void array_sizeof_printf(int input){    //배열길이 출력
    printf("입력받은 배열 길이는 %d \n", input);
}

void f_array(int *array, int input){ //배열안에 랜덤값넣음
    srand((unsigned)time(NULL));
    int i;
    for(i = 0; i < input; i++){
        array[i] = rand() %  150 + 1;
    }
}

void f_array_printf(int *array, int input){    //배열값 출력
    int i;
    for(i = 0; i < input; i++){
        printf("%d 번째 배열의 값은 %d \n", i, array[i]);
    }
}