본문 바로가기
반응형

프로그래밍194

[C 언어] 포인터와 배열 응용 / 문자와 문자열 포인터( 문자열 사용하기 ) / 배열 형태로 문자열 선언 / 입력 값을 문자열에 저장 포인터와 배열 응용 / 문자와 문자열 포인터( 문자열 사용하기 ) / 배열 형태로 문자열 선언 / 입력 값을 문자열에 저장에 대해서 정리한다. 포인터와 배열 응용 - 프로그램 실행 중에 원하는 크기만큼 배열을 생성하는 기능 ( 가변 길이 배열(Variable-Length Array, VLA) ) - visual studio 2015에서는 해당 방법을 지원하지 않기 때문에 포인터에 메모리를 할당해서 메모리를 배열처럼 사용하는 방법을 이용한다. - 자료형 *포인터 = malloc(sizeof(자료형) * 크기) 형식을 사용한다. - '*포인터'처럼 포인터를 역참조한 것과 '포인터[0]'처럼 인덱스 0에 접근하는것은 같은 값을 가져온다. 또한 '포인터[1]'과 *(포인터 + 1)도 서로 같은 값을 가져온다. .. 2017. 10. 16.
[SYSTEM HACKING] 실습 환경 세팅 / 컴파일 과정 / ELF 섹션(ELF Section) / 어셈블 프로그래밍 실습 환경 세팅 / 컴파일 과정 / ELF 섹션(ELF Section) / 어셈블 프로그래밍에 대해서 정리한다. - 실습 환경 - Red Hat Linux 6.2 * 부팅시마다 LILO BOOT에서 linux-up을 입력해줘야 한다. - 원격접속 설정 1). /etc/securetty pts/0 pts/1 pts/2 .. pts/8 * 위 내용을 해당 파일에 추가 시켜주기만 하면 다음 부팅시부터 Telnet을 이용한 원격접속이 가능하다. 2). PAM: /etc/pam.d/login - 두번째 라인을 주석 처리 - # auth required /lib/security/pam_securetty.so - 사용하는 도구 * C 컴파일러 : GCC ( GNU C Complier) * 어셈블러 : GAS( GNU.. 2017. 10. 14.
[C언어] 배열 / 2차원 배열 배열 / 2차원 배열에 대해서 정리한다. 배열 자료형 배열이름[크기] = {값, 값, 값}; - 같은 자료형의 변수를 일렬로 늘어놓은 형태 - 반복문을 이용해서 연속적이고 반복되는 값을 쉽게 처리할 수 있다. - 배열내의 각 요소에 접근할때는 '배열명[index]' 형식을 이용해서 접근이 가능하다. ( 배열 index의 시작은 0부터 시작한다 ) - 배열안에 있는 요소의 갯수는 배열의 선언된 크기보다 작을수는 있지만 클수는 없다. ( 만약 배열안에 있는 요소의 갯수가 배열에 선언된 크기보다 작다면 나머지 요소에는 자동적으로 0으로 값이 채워진다 ) - 배열의 모든 요소를 0으로 초기할때는 '자료형 배열이름 = { 0, }' 형식으로 사용해주면 된다. ( 위 형식을 사용하면 0을 배열의 크기만큼 각 요소에.. 2017. 10. 14.
[C언어] 중첩 반복문 / goto 제어문 / FizzBuzz 문제 / 포인터 / 메모리 사용 중첩 반복문 / goto 제어문 / FizzBuzz 문제 / 포인터 / 메모리 사용하기에 대해서 정리한다. 중첩 반복문 - 중첩 반복문을 이용하면 2차원 형태의 값을 제어할 수 있다. goto 제어문 goto 레이블; 레이블: - 프로그램의 흐름을 원하는대로 바꿀때 사용한다. ( 중간의 코드는 무시하고 원하는곳으로 건너뛰게 된다 ) - 위아래 방향 상관없이 사용할 수 있다. - 에러처리를 할때 유용하게 사용할 수 있다. - goto를 너무 남발하면 유지보수와 가독성이 떨어지는 스파게티 코드가 될 수 있다. - 실행되는 레이블이 연속적으로 위치해있다면 switch문을 사용할때 case안에 break가 없으면 아래 case에 있는 실행코드들도 실행하는 것처럼 해당 레이블 실행이후에 종료 시키는 코드가 없다면.. 2017. 10. 14.
[c언어] 반복문( for, while, do.. while ) / 반복문 제어( break, continue ) 반복문( for, while, do.. while ) / 반복문 제어( break, continue )에 대해서 정리한다. 반복문( for ) for (초기식; 조건식; 변화식) { 반복할 실행코드 } - 반복되는 기능을 처리할때 사용 - 루프 선언문(loop statement)를 통해서 반복할 횟수와 조건을 지정하고 그 횟수만큼 루프 본체(loop body)의 코드가 실행된다. ( 조건식이 참이면 반복문을 계속 진행하고 거짓이면 반복문을 끝낸다 ) - 반복에 사용할 변수는 초기식에 선언해도 되고 밖에서 선언해도 된다. - 반복 횟수가 정해져있을때 유용하게 사용된다. - for에서도 마찬가지로 실행코드가 한줄일때는 중괄호를 생략할 수 있다. - for 반복문에 사용할 변수와 초기값이 설정되어있으면 초기식.. 2017. 10. 13.
[c언어] 조건문( if ) / 비교 연산자, 삼항 연산자 / 논리 연산자 / bool 자료형 / 비트 연산자 / 연산자 우선순위 / switch문 조건문( if ) / 비교 연산자, 삼항 연산자 / 논리 연산자 / bool 자료형 / 비트 연산자 / 연산자 우선순위 / switch문에 대해서 정리한다. 조건문 ( if ) if ( 조건식 ) { 실행코드 } else if ( 조건식 ) { 실행코드 } else { 실행코드 } - 조건식을 만족했을때 해당 코드를 실행한다. - 조건식 뒤에 세미콜론이 붙는다면 중괄호 안의 코드는 실행되지 않고 if문이 끝나게 된다. ( 해당 실행코드가 정상적으로 실행되는 이유는 c언어에서는 코드를 중괄호로 묶을수 있기 때문이다 ) - 실행코드가 한줄이면 중괄호의 생략이 가능하다. - 조건식에서 비교할 변수와 값, 변수와 변수는 자료형을 맞춰주어야 한다. ( 실수의 경우에는 반올림 오차가 발생할 수 있으므로 반올림 오차.. 2017. 10. 12.
[C언어] 문자 자료형 / 상수 / 입력( scanf ) / 증감 연산자 / 자료형 확장, 축소 문자 자료형 / 상수 / 입력( scanf ) / 증감 연산자 / 자료형 확장, 축소에 대해서 정리한다. 문자 자료형 - char를 이용해서 하나의 문자를 저장가능 ( 부호없는 char는 보통 바이트 단위 데이터를 저장한다 ) - C언어에서는 작은따옴표를 이용해서 문자 하나를 묶는다. ( 작은따옴표를 이용해서 문자열을 묶을수는 없다 ) - char에 문자를 저장할 때는 문자 자체를 저장하지 않고 문자에 해당하는 정수값(ASCII)으로 저장된다. ( 서식지정자 %d를 이용해서 char 자료형 변수에 저장된 값을 불러오면 ASCII 코드의 10진수 값이 나온다 ) - char 문자에 있는 값을 서식지정자 %x를 이용해 16진수로 불러올때는 10진수와 헷갈리지 않도록 서식지정자 앞에 0x를 붙여준다. ( 8진.. 2017. 10. 12.
[C언어] 정수 자료형( 크기 및 범위, 최솟값과 최댓값 표현, 오버플로우, 언더플로우, 크기가 표시된 정수 자료형 ) / 실수 자료형( 최솟값과 최댓값 표현, 오버플로우와 언더플로우 ) / 자료형 .. [C언어] 정수 자료형( 크기 및 범위, 최솟값과 최댓값 표현, 오버플로우, 언더플로우, 크기가 표시된 정수 자료형 ) / 실수 자료형( 최솟값과 최댓값 표현, 오버플로우와 언더플로우 ) / 자료형 크기 구하기에 대해서 정리한다. 정수 자료형 - 소수점 이하 자리가 없는 숫자 정수 자료형의 크기 및 범위 정수 자료형의 오버플로우와 언더플로우 - 변수에 저장할 수 있는 범위보다 값이 작아지면 다시 최댓값부터 시작하는 언더플로우가 발생하고 반대로 저장할 수 있는 범위보다 값이 커지면 오버플로우가 발생해 최솟값부터 다시 시작하게 된다. - 부호 있는 정수에 오버플로우가 발생하면 최솟값(음수)부터 다시 시작, 언더플로우가 발생하면 최댓값(양수)부터 점점 작아진다. - 부호 없는 정수에 오버플로우가 발생하면 0부.. 2017. 10. 9.