본문 바로가기

Study_C, C++/홍정모의 따라하며 배우는 C언어

[홍정모의 따라하며 배우는 C언어] 6.16 배열과 런타임 에러

728x90

6.16 배열과 런타임 에러

#include <stdio.h>

#define NUM_DAYS 365

int main()
{
	char my_chars[] = "Hello, World!";

	int daily_temperature[NUM_DAYS];
	double stock_prices_history[NUM_DAYS];

	printf("%zd\n", sizeof(stock_prices_history));
	printf("%zd\n", sizeof(double)*NUM_DAYS);
	printf("%zd\n", sizeof(stock_prices_history[0]));

	return 0;
}

 

Output : 
2920	-> 365 * 8byte(double)
2920 
8	-> 글자 하나 (double 하나)

 

 

#include <stdio.h>

int main()
{
	int my_numbers[5];

	my_numbers[0] = 1;		// 배열의 첫 공간의 주소는 0 
	my_numbers[1] = 3;		// subscript, index, offset(첫번째 방으로부터 얼마나 떨어져 있나)
	my_numbers[2] = 4;
	my_numbers[3] = 2;
	my_numbers[4] = 1024;

	printf("%d\n", my_numbers[0]);	// 각 index의 값들 출력
	printf("%d\n", my_numbers[1]);
	printf("%d\n", my_numbers[2]);
	printf("%d\n", my_numbers[3]);
	printf("%d\n", my_numbers[4]);

	return 0;
}

 

Output : 
1
3
4
2
1024

 

 

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()
{
	int my_numbers[5];

	for (int i = 0; i < 5; i++) 
		scanf("%d", &my_numbers[i]);		
	// scanf("%d", my_numbers);		// array의 이름 자체가 주소값. my_numbers[0]과 동일

	printf("\n");
	printf("%d\n", my_numbers[0]);	
	printf("%d\n", my_numbers[1]);
	printf("%d\n", my_numbers[2]);
	printf("%d\n", my_numbers[3]);
	printf("%d\n", my_numbers[4]);

	return 0;
}

 

Output :
(1 입력)
(3 입력)
(2 입력)
(4 입력)
(5 입력)

1
3
2
4
5

 

 

#include <stdio.h>

int main()
{
	int my_numbers[5];

	my_numbers[0] = 1;
	my_numbers[1] = 2;

	printf("%d\n", my_numbers);			// array의 이름 자체가 주소값을 의미
	printf("%d", &my_numbers);

	return 0;
}

 

Output :
5634116
5634116

 

 

#include <stdio.h>

int main()
{
	/* Runtime Error */

	int my_numbers[5];

	my_numbers[5] = 123;	// out of bound -> complie시 이 error를 잡아주지 않음
	
	my_numbers = 7;		// compile error

	return 0;
}

 

 

 


강의 출처 : https://www.inflearn.com/course/following-c/dashboard

 

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원

www.inflearn.com