일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 오늘도 우라라 펫
- 마리아 DB
- 기초
- 그랑사가
- while
- 우분투
- 등차수열
- 리눅스
- Subscribe
- mysql
- 오늘도 우라라 공략
- 토픽
- mariaDB
- 환경설정
- JungOl
- topic
- 프로그래밍
- 데이터 베이스
- Linux
- ros
- ubuntu
- 오늘도 우라라
- C언어
- MSG
- install opencv-4.4.0 on ubuntu 22.04
- 반복문
- C++
- LeetCode
- 오늘도 우라라 펫 공략
- publish
- Today
- Total
목록프로그래밍/C언어 (12)
하루의 쉼터
| Error _ free(): double free detected in tcache 2 Aborted (core dumped) 위와 같은 에러 메세지는 free / new / malloc / delete / flose 등 메모리 시스템 관련하여 나타나는 에러이다. 해결 방법으로는 아래의 두가지를 해결 하면된다. 1. free / new / malloc / delete / flose 호출 구문이 잘못되었는지 확인. 2. free / delete / flose 시키고 NULL로 초기화 하였는지 확인. * 잊지말고 초기화 하자.
목표 l 반복문 While문과 For문의 차이 l 장단점 While문 - 조건식이 참이라면 구문을 수행한다. - 조건식이 거짓이라면 구문을 수행하지 않고 넘어간다. - 루프의 실행을 어느 시점에서 종료해야하는 경우 조건문과 break로 종료 - 루프 실행을 계속해야하는 경우 continue 문사용 장점 : 원하는 시점과 데이터를 정확하게 파악하며 사용해야한다. 단점 : 원하는 시점과 데이터를 정확하게 파악하며 사용해야한다. 무한 루프 사용 while(1){ } for 문 - 초기값 셋팅을 한다 - 조건식을 통하여 참 거짓을 판단 한다 - 내용 수행 후 증감 연산을 한다. 장점 : for문 선언에서 간략적인 조건 및 구조가 파악 가능하다. 단점 : 증감 연산 이외에 추가 적인 코드 수행을 하며 코드가 지저..
| LINUX에서 동적할당으로 만들어진 포인터의 실제 크기를 구하는 함수 1. 필요 경우 - 포인터를 통하여 메모리를 할당하는 경우 사이즈가 필요한 경우들이 종종 있다. - ex) 배열이 아닌 포인터로 함수 매개 변수를 이용하였는데 크기가 필요한 경우 등. 2. 함수 아래는 Windows 상에 있는 _msize와 같은 기능을 하는 함수이다. size_t malloc_usable_size (void *ptr); Hearder File malloc.h Return Type size_t Name malloc_usable_size Parameters void *ptr * 기능 : 사용되는 메모리의 블록 바이트를 리턴 하여 준다. * Hearder File : 함수를 사용하기 위해 필요한 헤더파일 : malloc..
| STACK_스택 1) 스택의 개념 - 여러개의 데이터 항목들이 일정한 순서대로 나열된 자료구조 - 한쪽 끝에서만 삽입 / 삭제가 가능한 형태 - 선형 리스트의 특수한 경우로 top 자료구조의 끝에서 삽입, 삭제 2) 원리 - 플랭글스 감자칩처럼 마지막에 들어온 자료가 가장 먼저 나가는 구조 3) 기본 성격 - 후입 선출 구조 (Last In First Out) LIFO 형태 - 스택에 가장 마지막에 들어온 데이터가 가장 먼저 삭제 4) 기본 구조 - base로 쌓아져 올린 모양을 갖는다. - 삽입과 삭제는 top위치의 스택 포인터를 통해 이루어 진다. 5) 스택의 입출력 삽입 ( push ) : 스택의 상단에 새로운 값을 집어 넣음. --> Full 검사 ( stack overflow ) 삭제 ( p..
연결리스트 1) 정적배열 - 크기 고정 - 메모리가 낭비된다 - 변경에 대처가 어렵다, 유연성이 떨어진다 2) 동적 배열 장점 : 실행시간에 heap메모리에 배열을 할당 단점 : 성능 저하 !! 동적으로 증가, 감소는 가능하지만 구현이 어렵고 성능 저하 3) 포인터 배열 - 동적인 자료구조 --> 대략의 크기가 정해진 경우 ex) 지뢰찾기 --> 처음설정된 이후에 크기가 변하지 않는 경우 변하더라도 크기가 예측이 가능한 경우 사용 --> 가장 많이 사용되는 대표적인 자료구조 단점 : 데이타의 크기가 예측이 불가능한 경우 사용하기 어려움 4) 연결리스트 (linked list) - 동적으로 데이타를 1씩 생성해나가는 선형자료구조 !! - 데이타와 데이타를 링크를 통해 순위,순서를 나타낸다 !! - 노드(n..
동적 메모리 ( heap) - 동적 자료 구조 - 배열의 단점을 극복하는 구조... 1) 일반 정적 배열 : C/C++언어 차원에서 지원해주는 배열 ex) int arr[5]; - 장점 : 실행 속도가 빠르다. - 단점 : 크기가 고정이다. ★ 유연하지 못하다. ( 변화에 대응할수 없다.) 정적인 배열의 메모리 낭비 * 정적인 배열의 메모리 낭비 char addr[3][20] = {"",}; [][][][][][][][][][][][][][][]][[]][][[] [][][][][][][][][][][][][][][]][[]][][[] [][][][][][][][][][][][][][][]][[]][][[] 사용자에게 3개의 문자열 입력 받아서 저장 되지만 남은 공간이 발생 2) 동적 배열 - 실행시간에..
목표l Call by Value(값 전달)l Call by Address, Reference(주소 전달) 프로그래머가 되기 위해 준비하는 사람들이라면 많이 들어 봤을 것이다.Call by Value와 Address,Reference. Value의 사전적 의미는 가치 또는 값 이라는 뜻을 가지고 있다.Address의 사전적 의미는 주소라는 뜻을 가지고 있다.Reference의 사전적 의미는 참고 또는 참조라는 뜻을 가지고 있다. 우리는 C를 가지고 함수를 통하여 이러한 것들이 무엇을 뜻하는지 살펴 보자.Address와 Reference는 같은 개념으로 볼 것이다. C에선 Reference를 유사하게 표현한 것이 Address라고 보면 된다. 참조 : 2019/01/10 - [프로그래밍/C언어] - [기초]..
목표l 포인터배열과 배열포인터에 대해 배열은 같은 자료형을 가진 변수들의 묶음이다. 배열의 이름은 배열의 시작 주소를 뜻한다. 그렇다면 포인터 배열은 무엇일까? 참고 : 2019/01/10 - [프로그래밍/C언어] - [기초] 포인터 포인터 배열은 포인터( 주소 값을 저장하는 변수 )로 이루어진 배열이다. 쉽게 설명하자면 자료형이 int나 char가 아닌 int*,double*식으로 포인터가 자료형인 배열이다. 주소를 저장하는 배열 그게 포인터 배열이라 할 수 있다. 그렇다면 배열포인터란 무엇일까? 배열을 가르키는 포인터, 즉 배열의 주소를 가르키는 것이라고 볼 수 있다. 이 말은 무엇일까? 아래의 사진을 참고하여 간단하게 생각해보자. 배열 포인터는 배열을 가진다 라고 생각하면 편하다. int형식의 배열..