본문 바로가기

분류 전체보기246

shell script 실습 환경1 , virtual Box 다운 및 실행 , ubuntu 설치 실행 ubuntu 는 리눅스 배포판이라고 이해하면 된다. 리눅스와 윈도우는 같은 운영체제라서 한 컴퓨터에서 한번에 돌아 갈 수 없다. 때문에 가상 머신을 사용해서 리눅스를 사용해야 한다. 아니면 더블 부팅하던가 (운영체제 2개 다 깐다음에 부팅할때 어떤 운영 체제를 사용할지 선택) 어쨌든 공부 할때는 윈도우도 필요하니까 가상머신 방법을 사용하자 VM웨어 등 좋은 가상 머신이 많지만 돈이 없으니까 공짜인 virtual Box 가상 머신을 사용해서 ubuntu 를 사용하겠다. 우금투 , virtual Box 다운 설치 https://www.virtualbox.org/wiki/Downloads Downloads – Oracle VM VirtualBox Download VirtualBox Here you will f.. 2021. 6. 16.
210615_ :button2.Select(); :closer public partial class Form1 : Form { public Form1() { int iNum = 100; InitializeComponent(); button1.Click += (o , e) => { MessageBox.Show("test" + iNum) ; // iNum 변수가 소멸 되지 않는다 . }; } } 2021. 6. 15.
터보C 설치 사용 옛날 책을 사용하기 위해서 터보 C 를 사용할 경우가 종종 있다. 요즘 64bit 운영체제라서 16bit 운영체제용인 터보C 가 구동되지 않아서 dosBox 를 이용해서 터보 C 를 구동한다. 파일 다운하고 setup 실행 C에 자동으로 TURBOC3 설치됨 소스 파일 생성으로 만들어 준다. 먼가 경로설정이 이상해서 New Project 해서 만들면 경로가 이상해서 stdio.h 파일 못찾는다. test.c 소스파일 생성 간단한 코드 실행 터보 시에서는 cmd 화면이 뜨고 바로 꺼짐으로 getch() 명령으로 아무 키 입력을 대기 시켜야지원화는 화면을 볼 수 있다. 잘되는 구만 참고로 실행 키 단축키는 Ctrl F9 이다. 복사 붙여 넣기 단축키 system( "cls" ); 콜솔찰 지우기 명령어 이거 .. 2021. 6. 15.
Linked List 구현 Linked List 는 굉장히 유용한 자료 구조이다. 이를 c 언어로 구현한 예제 이다. 각 노드는 다음 노드의 주소를 가지고 자신의 값 (data) 를 가지고 있다 . 첫 노드는 무조건 0 을 data 로 갖는다. malloc 함수와 free 함수를 써 볼 수 있는 유용한 예제이다. #include #define TRUE 1 #define FALSE 0 typedef struct list_node { int data; struct list_node* next; }LINKED_LIST; LINKED_LIST* init_list();// 연결 리스트 초기화 LINKED_LIST* make_node();// 빈 노드 생성 int insert_node(LINKED_LIST*, int, int); // 노드 .. 2021. 6. 14.
델리게이터 & 람다 델리게이트 = 함수 포인터 : c # 에서 사용하는 함수 포인터 간단 예제 class Program { //delegaete type 생성 delegate void SMART(); static void Main(string[] args) { SMART A; test1(); A = test1; A(); } static void test1() { Console.WriteLine("tset1"); } } 심화 예제 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _210614_001 { class Program { //delegaete.. 2021. 6. 14.
파일도 결국 1과0으로 이루어지 데이터이다. 파일이 어떻게 저장되어 있는지 보기 위해서 bitmap 파일을 읽어 보겠다. bitmap 파일도 결국 1과 0 으로 이루어지 데이터이다. 이를 이해하기 위해서 bitmap 파일 헤더가 어떻게 저장 되어 있는 지 알아보고 읽어보자 위의 정보를 이용해서 bitmap 파일 헤더에서 필요한 정보를 읽어 보자 , #include #include #include #include #pragma warning(disable : 4996)// 보안 문제로 뜨는 경고 메세지 무시 #pragma pack(1) // 1byte 단위로 꽉꽉 저장하기 typedef struct _smart { UCHARMagic[2]; UINTFSize; UINTResv1; UINTOff; UINTHSize; UINTWidth; UINTHeig.. 2021. 6. 13.
signed Vs unsigned int 형에서 signed , unsigned 의 차이는 부호 비트에 있다고 흔히 생각한다. 제일 앞에 있는 1bit 가 1이면 음수로 생각하는 것이 signed 라고 단순하게 생각 하곤 한다. 그렇다면 c 언어에는 unsigned char 라는 형태의 변수가 존재한다. char 는 문자를 입력 받기 위한 변수이지만 unsigned 는 무슨 말인가 ? 애초에 문자에 부호가 존재 할 수 있는 것인가 ? 라는 질문을 가져 보길 바란다. int main() { intiNum = 0xABCD1234; char* cP = &iNum; unsigned char* uP = &iNum; printf("*cp [%02X]\n", *cP); printf("*up [%02X]\n", *uP); ++cP; ++uP; prin.. 2021. 6. 13.
stirng 은 readonly 속성이다. c# 뿐만 아니라 많은 언어에서 string 관련 편집 메서드를 제공한다. 때문에 우리는 쉽게 string을 수정 할 수 있다고 착각 하곤 한다. 하지만 string 은 태생부터 heap 영역에 저장되는 데이터로 수정이 불가능 하다 . ( C 의 경우 메모리의 직접접근으로 수정 가능) static void Main(string[] args) { string str = "abcdefg"; str[0] = 'b'; } 오류 CS0200 'string.this[int]' 속성 또는 인덱서는 읽기 전용이므로 할당할 수 없습니다. 따라서 위와 같은 코드는 오류를 생성 한다. 때문에 우리는 string 을 수정하기 위해서는 string 을 char 배열로 바꿔줄 필요가 있다. 다행이 c#은 이를 위한 메서드가 있다.. 2021. 6. 13.
c# 에서 다차원 배열 c 에서 다차원 배열을 배울 때 나는 1차원 배열의 나열로 배웠다. 메모리에 1차원 배열이 2개 나열 되어 있을 뿐이라고 생각 했다. 하지만 c# 에서 는 다음과 같은 형태로 다차원 배열을 구성한다. int[][] a = new int[2][]{ new int[]{ 1,2,3}, new int[]{ 4,5,6} }; 실제 3개의 데이터를 가지는 2개의 인트 배열을 만들고 각각의 시작 주소를 저장하는 객체 참조 변수 배열을 만든다. 그 후 그 객체 참조 변수배열의 시작 주소를 가리키는 객체 참조 변수를 만든다 . 이 객체 참조 변수 a 가 우리가 원하는 다차원 배열이다. 2021. 6. 13.