위의 예제를 보면, inputString() 함수와 같이 경우에 따라 함수 내부에서 문자열을 입력 받은 후, 입력 받은 문자열을 돌려 받아야 한다.


하지만, 입력 받은 문자열을 저장하기 위해 inputString() 함수 내에 선언되어 있는 stringValue 변수가 메모리의 stack 영역에 저장되는 지역변수이므로 inputString() 함수가 종료될 때,  메모리 상에서 사라지게 된다. 이것은 원하지 않는 결과값을 얻게 되는 원인이 된다.


- 결과값



이러한 점을 해결하기 위해 아래와 같은방법이 있다.

먼저, 기존의 방법과 마찬가지로 임의의 크기로 선언된 char형 배열에 문자열을 입력받는다. 두 번째, 입력받은 문자열 크기만큼 heap 메모리 영역에 동적할당을 해준다. 마지막으로 입력받은 문자열을 strcpy(strcpy_s) 함수를 통해 동적할당 받은 temp에 복사한 후, 이 temp를 반환하면 된다.


이 방법은 동적할당을 통해 heap 메모리 영역에 생성되는 공간이 stack 영역과는 다르게 함수의 종료 후에도 사라지지 않고 유지되게 때문에 가능하다.


- 결과값


Posted by gangju
,

Eclipse를 윈도우 작업 표시줄에 고정시키고 사용할 때, Eclipse를 실행하게 될 경우, 작업표시줄에 등록된 Eclipse 아이콘이 아닌 새로운 작업창이 Eclipse 아이콘이 활성화되게 된다. 이 문제를 해결하기 위해 아래와 같은 방법으로 해결할 수 있다.


1. Eclipse 설치 디렉토리 내의 eclipse.ini 파일을 텍스트 에디터를 통해 연다.

2. 상단에 아래의 2줄을 추가한다.

-vm

C:\Program Files\Java\jre1.8.0_66\bin

※ 자신의 자바 JRE 디렉토리를 입력한다.

3. Eclipse를 실행한다.

4. 실행되어있는 Eclipse의 아이콘을 작업표시줄에 고정한다.

'기타' 카테고리의 다른 글

Naming Rule(Camel Case, Pascal Case)  (0) 2016.01.06
Posted by gangju
,

프로그래밍을 할 때 클래스나 변수를 구분하기 위해 다양한 이름을 붙인다. 이 때 암묵적으로 Camel Case나 Pascal Case와 같은 이름 규칙을 적용한다.


1. Camel Case

- 각 단어의 첫문자를 대문자로 표기하고 붙여쓰는 표기법

- 띄어쓰기 대신 대문자로 단어를 구분하는 표기 방식

- 첫 단어를 소문자로 시작

- 메소드, 변수의 이름에 적용

- 예시 : backgroundColor, typeName, iPhone



2. Pascal Case

- 첫 단어를 대문자로 시작하는 카멜 표기법

- 클래스의 이름에 적용

- 예시 : BackgroundColor, TypeName, PowerPoint


※ 상수의 경우 모든 문자를 대문자로 구성한다. (둘 이상의 단어일 경우 _(언더바)를 사용)


<출처 : 제타위키>

'기타' 카테고리의 다른 글

Eclipse 아이콘 작업 표시줄에 하나로 보이기  (0) 2016.01.31
Posted by gangju
,