일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- popupmenubutton
- 성수동카페
- pipenv
- 정렬알고리즘
- 코딩독학
- richtext
- 추상클래스
- 가상환경
- 부스트코스
- Django
- 자바
- python3
- 노마드코더
- Python
- removetooltip
- 속초여행
- 아스키코드
- JavaScript
- DOM
- 컴퓨터과학
- 건대입구맛집
- 포인터
- FLUTTER
- c언어문자열
- 알고리즘
- 장고
- BeautifulSoup
- 강원도속초맛집
- 남양주맛집
- 상속
- Today
- Total
목록Programming Languages/C (10)
YUYANE

학습 강의 www.boostcourse.org/cs112/joinLectures/41307 malloc () ptr = (cast-type*) malloc(byte-size) ptr = (int*)mallox(100*sizeof(int)); int 형의 크기는 4바이트이므로, 위의 코드는 400 바이트의 메모리를 할당하며, 포인터 ptr은 할당된 메모리의 첫 번째 바이트 주소를 가진다. - 각 블록을 default garbage 값으로 초기화 시킨다. - 배열 크기 수정할 때, 문자열 복사 할 때 등 사용 가능하다. - 정해진 크기 만큼의 메모리를 할당하는 함수 - 메모리 할당 이후에는, 유한한 메모리를 효과적으로 관리하기 위해 반드시 free()를 이용하여 메모리 해제를 시켜줘야 한다. 그렇지 않으면 ..

학습 강의 www.boostcourse.org/cs112/lecture/119029 www.boostcourse.org/cs112/lecture/119030 문자열 C언어에는 따로 문자열(string) 자료형이 없다. 대신에 문자(char)의 배열로 나타낸다. 아래와 같이 문자열을 변수에 담아보자. (우선은 편의상 자료형을 string이라고 했다.) string s = "EMMA"; 문자열은 문자의 배열이기 때문에 s[0], s[1],..와 같이 문자 하나하나를 나타낼 수도 있다. 한 가지 유의할 것은 문자열 끝에 '\0'을 표시함으로써 문자열의 끝을 알린다는 것이다. 여기서 '\0'을 널 종단 문자라고 부른다. char *를 이용해서 문자열 저장하기 - 지난 번 포스팅을 참고하면 이해가 더 쉽다. (1..

학습 강의 www.boostcourse.org/cs112/lecture/119027 www.boostcourse.org/cs112/lecture/119028 16진법의 유용성 - 컴퓨터의 메모리와 파일(이미지 등)을 만들거나 수정할 때 컴퓨터나 휴대폰 속 메모리의 위치를 각 바이트에 고유한 숫자를 부여함으로써 표현한다. - 아스키 코드에 의해 알파벳은 10진수의 숫자에 해당한다. 문제는, 컴퓨터로 처리하기 위해 10진수를 2진수로 표현하게 되면 숫자가 너무 길어지게 된다. 그런데, 16진수로 표현하면 아래 예시에서도 볼 수 있듯이 2진수로 표현할 때 보다 훨씬 간단해진다. - 10진수, 2진수, 16진수의 비교 예시 ( 16진수는 16진수를 구분하기 위해 앞에 '0x'를 붙인다. 이외의 다른 의미는 없다..

학습 강의 www.boostcourse.org/cs112/lecture/119018/ 명령행 인자(Command line arguments) C언어 프로그램을 실행할 때 'clang' 혹은 'make' 라는 명령을 입력함으로써 프로그램을 컴파일한다. 그런데 명령을 할 때, 추가 인자(argument)를 넣을 수 있는데, 이를 명령행 인자라고 부른다. #include stdio.h> #include int main(void) { } 위와 같이 main 함수에 인자를 넣지 않을 수도 있지만, #include int main(int argc, char* argv[]) { if(argc==2) { printf("hello, %s\n",argv[1]); } else { printf("hello, world!\n"..

학습 강의 www.boostcourse.org/cs112/lecture/119011 컴파일링 인간이 사용하는 소스 코드를 기계가 이해할 수 있게 오브젝트 코드(머신 코드)로 변환하는 전체과정. C언어에서 make나 clang을 사용해서 프로그램을 실행할 때, 아래 네 가지 단계를 거쳐야 최종적으로 실행 가능한 파일이 완성 된다. - 전처리(Preprocessing), 컴파일(Compiling), 어셈블(Assemble), 링크(Link) 전처리(Preprocessing) #으로 시작되는 C 소스 코드(여기서는 'include')는 전처리기에게 코드 실행에 앞서 무언가를 실행하라고 알려준다. 예를 들어, 코드 작성에 앞서 '#include'를 통해 C언어로 작성 된 'stdio.h' 라이브러리를 포함시키라..

코드 리뷰 앞선 포스팅에서 전역 변수 사용은 지양하라는 피드백을 받았다고 했다. 작성했던 코드는 아래와 같은데, while 문의 조건 식으로 이용하기 위해 전역 변수를 사용했었다. 그렇다면 전역 변수를 사용하지 않고, 동일하게 구현 될 코드를 작성할 수 있을까? 구글링 결과, 포인터를 사용하는 방법이 있음을 알아냈다! 포인터란? 포인터 변수를 줄여 포인터라고 부르며, 변수가 저장 되는 메모리 주소를 뜻한다. * 부호를 붙여서 선언하며 사용 방법은 아래 예시를 보자. 포인터 변수 '*numPtr'에 값을 '10'으로 저장하는 과정이다. #include int main() { int *numPtr; // 포인터 변수 선언 int num1 = 10; // int형 변수를 선언하고 10 저장 numPtr = &..
발단 전역 변수를 사용하여 부스트 코스 미션 과제를 제출했다가, 일반적으로는 전역변수를 잘 사용하지 않는다는 피드백을 받았다. 왜 그럴까? 학습 내용 subscription.packtpub.com/book/game_development/9781787127838/2/ch02lvl1sec20/pros-and-cons-of-global-variableswww.guru99.com/local-vs-global-variable.html 전역 변수란? 전역 변수는 함수 외부에서 선언된 변수이다. 전역 변수는 프로그램이 돌아가는 동안 그 값을 계속해서 담고 있으며, 프로그램 내 어떤 함수에서든 호출이 가능하다. 전역 변수의 장점 - 프로그램 내 모든 함수나 모듈로부터 접근이 가능하다. - 모듈 외부에서 한 번만 선언하..

학습 강의 www.boostcourse.org/cs112/lecture/119009 C언어에는 문자열을 저장하는 자료형인 string이 없다. 따라서 char 를 사용해서 문자열을 담아야 하는데, 두 가지 방법이 있다. 포인터를 사용하거나, 배열을 사용하거나 char *str = "There is no string"; char str_[] = "There is no string"; 그런데 string이라는 개념은 존재한다. printf 를 사용해서 출력을 하려면 다음과 같이 코드를 작성해야 한다. printf("%s\n",str); printf("%s\n",str_); '%s' 대신에 '%c'를 다음과 같이 컴파일 오류가 난다. 포인터 vs [ ] char *str 은 메모리 주소를 담고, char st..