2748번 - 피보나치 수 2
#include <stdio.h>
int main() {
int num; scanf("%d", &num);
long long Fib[100] = { 0,1 };
for (int i = 2; i <= num; i++) { Fib[i] = Fib[i - 1] + Fib[i - 2]; }
printf("%lld\n", Fib[num]);
return 0;}
이렇게 풀면 맞는데
#include <stdlib.h>
int num;
scanf("%d", &num);
long long * Fib = (long long*)malloc(sizeof(long long)*(num + 1));
for (int i = 2; i <= num; i++) {
Fib[i] = Fib[i - 1] + Fib[i - 2]; }
return 0;
}
이렇게 동적할당을 하면 런타임에러가 나는 이유가 무엇인가요?
저렇게 하면 답도 제대로 안 나옵니다.
댓글을 작성하려면 로그인해야 합니다.
gardenia 5년 전
#include <stdio.h>
int main() {
int num;
scanf("%d", &num);
long long Fib[100] = { 0,1 };
for (int i = 2; i <= num; i++) {
Fib[i] = Fib[i - 1] + Fib[i - 2];
}
printf("%lld\n", Fib[num]);
return 0;
}
이렇게 풀면 맞는데
#include <stdio.h>
#include <stdlib.h>
int main() {
int num;
scanf("%d", &num);
long long * Fib = (long long*)malloc(sizeof(long long)*(num + 1));
for (int i = 2; i <= num; i++) {
Fib[i] = Fib[i - 1] + Fib[i - 2]; }
printf("%lld\n", Fib[num]);
return 0;
}
이렇게 동적할당을 하면 런타임에러가 나는 이유가 무엇인가요?