배열 3

[JAVA] 2차원 배열 동적할당

우리는 배열을 이용해서 힙영역에 내가 원하는 크기만큼의 배열을 동적할당할수 있습니다. 왜굳이 동적할당을 해야하나? 그냥 넉넉하게 지정해주면 안되나? 하는 분들도 있겠지만 그렇게 되면 메모리손실이 뜻하지 않게 너무커져버릴수 있기 때문입니다. 고등학교를 예로 든다면 반별로 학생수가 다를수가 있습니다 1반에는 30명 2반에는 35명 이렇게 있을수가 있다는 거죠.. 이럴땐 그냥 넉넉하게 배열을 50씩 잡아줄수 있겠지만 우리는 동적할당을 이용해서 배열을 크기를 지정해 보도록하죠. import java.io.*; public class Exam_array { public static void main(String[] args)throws IOException{ BufferedReader in = new Buffer..

。공부 。 2008.02.27

[C언어] 포인터를 배열이름처럼 활용해보자

배열역시 포인터이기 때문에 포인터변수에 배열이름의 주소값을 대입할수있습니다. 이말은 즉 포인터변수는 배열의 첫번째요소의 주소로 초기화를 시킬수있고 그곳을 가르킬수있다는 겁니다. 또한 포인터는 자료형을 갖고 있기때문에 배열과 마찬가지로 배열의 요소를 포인터연산을 통해 가르키를값을 변경시킬수도 있을 것입니다. 지금부터 그예를 들어 포인터연산을 통해 포인터변수의 값을 변경해보도록하죠. int array[3] = {1,2,3,}; int형 데이터 3개를 저장할수있는 배열 array를 선언하고 요소를 1,2,3초기화 해줍니다. int* pp = array; //배열이름은 배열의 첫번째 요소의 주소를 값으로 갖는다. int형 포인터변수 pp에 배열 array의 주소값으로 초기화 즉 array의 첫번째 요소의 주소로..

。공부 。 2008.01.18

[C언어] 배열이름도 포인터?

배열이란 둘이상의 변수를 동시에 선언하거나 많은 양의 데이터를 일괄적으로 처리할때 주로 쓰인다. 하지만 우린 배열이또다른 의미를 갖고 있다는것을 알면서도 대충알고만 넘어가는 경우가 많다. 배열을 또다른 말로 풀이하면 상수포인터라고 말할수있습니다. 그이유를 알아보자. int array[5] = {0,1,2,3,4}; 다음과 같은 배열이 있고 배열 array의 첫번째 요소의 주소값이 0x1000번지에 할당되었다고 가정하자. 그럼 두번째 요소인 array[1]은 int형 배열이기 때문에 4byte를 건너뛴 0x004번에 할당될것이다. 만 double형이였다면 8byte씩 건너뛰어서 할당이 되겠지요.. 아래와같이 배열요소의 결과값을 출력하면 결과값은 당연히 0과 1이 나오겠죠? printf("array[0] :..

。공부 。 2008.01.17