malloc와 calloc의 함수 원형은 다음과 같다.


void *malloc(size_t size);
void *calloc(size_t num, size_t size);


malloc는 할당할 메모리 크기를 바이트 단위로 전달받고, 할당된 공간의 값들은 바꾸지 않는다.
calloc는 메모리 크기를 두 값으로 나누어 전달받으며, 할당된 공간의 값을 모두 0으로 바꾼다.
그래서 배열을 할당하고 모두 0으로 초기화해야 할 때는 calloc를 쓰면 편하다.

아래 세 문장은 int형 변수를 배열처럼 5개씩 할당하는 예이다.

n = (int *)malloc( 5*sizeof(int) );
n = (int *)calloc( 5, sizeof(int) );
n = (int *)calloc( 1, 5*sizeof(int) );

여기서 'sizeof(int)'는 int형 변수가 차지하는 메모리 크기를 바이트 단위를 반환해 준다.
메모리 공간을 할당하는 점은 세 문장이 모두 같고, calloc가 할당된 공간의 값들을 0으로 채운다는 점이 다르다.
둘째, 셋째 문장은 수행 결과가 똑같다.



이미 할당한 공간의 크기를 바꿀 때에는 realloc를 쓴다.

void *realloc(void *memblock, size_t size);


realloc는 재할당한 뒤에 새로 할당된 메모리 주소를 반환한다.
기존에 있던 배열의 자료는 그대로 유지하면서 배열 길이를 늘릴 수 있다.

다음은 malloc로 배열크기를 5으로 할당하여 숫자를 채우고, realloc로 배열 크기를 10로 늘려서 숫자를 추가하는 예제이다.

#include <stdio.h>
#include <stdlib.h>

void main()
{
int *ar, size, i;

size = 5;
ar = (int *)malloc(size*sizeof(int)); // 메모리 할당
for(i=0; i<size; ++i) ar[i]=i;
for(i=0; i<size; ++i) printf("%d",ar[i]);
printf("\n");

size = 10;
ar = (int *)realloc(ar, size*sizeof(int));
for(i=5; i<size; ++i) ar[i]=i;
for(i=0; i<size; ++i) printf("%d",i);
printf("\n");

free(ar); // 할당한 메모리 해제
}



이 예제를 실행시키면 이렇게 출력된다.

01234
0123456789

vim

http://sunyzero.tistory.com/131



원본 이미지 출처 : http://blog.insightbook.co.kr/217 
원본 이미지 크기 : 3472x2546 , 2710x1751

"손에 잡히는 vim" 책 맨 뒤에 있는 단축키 모음입니다.(인터넷에 돌아다니는 이미지를 인사이트에서 예쁘게 재편집한 것입니다.) 인사이트 출판사에서 제작한 원본 이미지의 바탕이 아름다운 블랙 바탕이라 출력, 복사할 때 토너 범벅이 됩니다. 그래서 옅은 회색, 흰색으로 변경한 이미지를 올려둡니다.

1. 명령어 단축키

vim 단축키vim 단축키


2013.1.7 숫자 0과 닫힌 소괄호의 오류 수정함 (zelon님)


 
2. 이동 단축키

vim 이동 단축키vim 이동 단축키



바탕 화면으로 저장해두면 딱 좋을 듯 합니다.

ps. 간만에 gimp에서 작업하려니 색상을 찝어서 교체하는 방법을 까먹어서 한참을 헤매다가 겨우 완성. 무려 한 시간이상 걸렸습니다. ㅠ.ㅠ  

vi

set ts=8 sw=4 bs=2

set autoindent cindent smartindent

set number ruler nowrap

set hlsearch

set smarttab

set showmatch showmode

set title

set term=xterm-color

syntax on

colorscheme evening


map <F2> v]}zf

map <F3> zo

map <F5> <C-W>h

map <F6> <C-W>l


let &titlestring="%t (%{expand(\"%:~:h\")})"



음...

참고 : http://hajadc.tistory.com/65

'리눅스 서버에 대해서 > 리눅스 팁들' 카테고리의 다른 글

VIM 단축키  (0) 2013.01.21
vi 기본설정  (0) 2013.01.10
putty 설정  (0) 2013.01.10
Google Performance Tools - TCmalloc (Thread-Caching memory allocation)  (0) 2013.01.10
쉘 프로그래밍 강좌  (0) 2013.01.10
GNU Make 강좌  (0) 2013.01.07

+ Recent posts