프로그래밍/C언어 스피비 2011. 6. 15. 11:28
MSVCRTD.lib(crtexe.obj) : error LNK2019: _main 외부 기호 (참조 위치: ___tmainCRTStartup 함수)에서 확인하지 못했습니다. C:\경로~\D3D_Normal.exe : fatal error LNK1120: 1개의 확인할 수 없는 외부참조입니다. D3D_Normal_2 - 오류: 2개, 경고: 0개 ========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ========== 가끔 동료나 후배들이 프로젝트가 문제없는데, 왜 에러나냐고 이런 에러가있는 프로젝트를 주곤한다. ___tmainCRTStartup를 찾을 수 없다는 것은 CALLBACK함수인 main()을 찾지 못했다는 것이다. 즉 main() 함수가 없을때 발생하는 에러. 그런데 우린 ma..
프로그래밍/C언어 스피비 2011. 4. 7. 21:02
1.realooc()? realloc() 함수는 malloc() 함수로 메모리를 할당한것은 재할당 할때 쓰인다. 메모리 공간을 그대로 두고 메모리 크기를 늘리고 줄일수 있다는것이 장점!!! 즉, 배열을 이동하지 않고 배열 크기를 변경한다. 2.realloc을 호출했을 때 메모리에 새로운 크기의 배열을 담을만한 공간이 없다면 어떻게 될까? => 0을 반환함! 그리고,메모리 누수가 일어남. 이유: realloc이 새 배열을 담을만한 크기의 메모리를 할당하지 못하면 realloc은 0을 돌려주며, 할당받은 포인터는 NULL이 된다. 포인터가 가리키고 있던 배열은 여전히 힙메모리에 남아 있지만, 배열의 주소값을 읽게되므로 메모리 누수가 일어나는 것임 3.주의할점 아직 삭제하지 않은 배열을 가리키는 포인터를 덮어..
프로그래밍/C언어 스피비 2011. 4. 7. 20:33
malloc : memory allocate calloc : clear allocate ralloc : re allocate .... 등등 모르는 사람이 생각보다?! 많다!!
프로그래밍/C언어 스피비 2011. 3. 24. 10:10
함수오버로딩 조건 => 함수와 연산자는 오버로딩이 가능하다. 컴파일러는 이 세가지 조건을 가지고 오버로딩을 검사한다. 조건1) 매개변수 타입 조건2) 매개변수의 개수 조건3) const의 유/무 tip: 참고로 컴파일러는 함수매개변수와 리턴값을 가지고 함수가 선언,정의 되어있는지 확인한다. 만약 매개변수와 리턴값이 다를경우 오버로딩을 확인하고 만약 오버로딩되있는 정확한 타입이 없다면 비슷한 타입에 암시적인 변환을 해준다!!!(오왕 ~~ 컴파일러님 짱)
프로그래밍/C언어 스피비 2011. 3. 23. 12:02
FILE(파일): 디스크에 정보가 저장되는 단위로,고유의 이름을 가진다. 파일을 사용하는 이유 1. 큰정보를 밖으로 빼낸다. 모든정보를 다 가지지 않고 나눈다 2. 프로그램의 작업결과를 영구적으로 저장하기 위해서도 파일을 사용한다. 파일 엑세스하는 방법 5가지 1.고수준 파일핸들 2.저수준 파일핸들 3.C++ 스트림 객체 4.윈도우 API함수 5.클래스 라이브러리가 제공하는 파일 액세스 객체 고수준과, 저수준의 가장 큰 차이점은 버퍼의 유무이다. 고수준은 버퍼를 사용한다. 버퍼는 파일로부터 입출력되는 데이터를 잠시 저장하는 메모리영역으로 가급적이면 하드디스크 액세스하는 회수를 줄이기 위해 버퍼를 사용함 한번읽을때 미리 주변데이터를 버퍼에 읽어 놓으면 다음 읽기 요청은 하드 디스크 액세스 없이 버퍼에서 바..