1. 2009.10.05 포인터를 왜 쓰는가?
  2. 2009.09.29 strcat 실행시간 측정
  3. 2009.09.14 실행 속도 측정하기

포인터를 왜 쓰는가?

 #include <stdio.h>

void assign();


int main()
{

 int cheoli =0;

 assign();

 printf("함수가 호출된 후에 cheoli에 저장된 값 : %d\n", cheoli);

 return 0;

}

void assign()
{

int  cheoli = 100;

}

=>결과값 cheoli = 0

∵ assign 함수 내에서 선언된 cheoli 변수는 main함수와는 전혀 상관없는 새로운 기억공간에 할당된 변수

 

#include <stdio.h>

void assign(int *);


int main()
{

 int cheoli =0;

 assign(&cheoli);

 printf("함수가 호출된 후에 cheoli에 저장된 값 : %d\n", cheoli);

 return 0;

}

 

void assign(int *ip)
{

 *ip = 100;

}

=> 결과값 cheoli = 100

 

return을 사용하면 두개의 변수에 서로 다른 값을 저장하는 함수는 불가능.

그러나 포인터를 사용하면 두 개 이상의 변수를 직접 참조하는 함수를 만들 수 있다.


'and so on' 카테고리의 다른 글

[11.03] 프로젝트 스터디  (0) 2009.11.07
[10.25] 프로젝트 진행사항  (0) 2009.10.26
strcat 실행시간 측정  (0) 2009.09.29
실행 속도 측정하기  (0) 2009.09.14
베풂  (0) 2009.06.02

strcat 실행시간 측정

strcat함수는 문자열에서 널 문자를 찾아가 종결자를 찾아내면, 문자열을 돌아다니며, 한 번에 글자 하나씩을 복사해서 첫째 문자열 뒤여주는 역할을 하기 때문에, strcat의 실행시간이 늦은 이유는 첫 부분이 매번 널 문자를 찾아 목적지 문자열을 헤매 다녀야 하기 때문이라고 생각이 든다.


따라서 문자열의 끝을 가리키는 포인터를 반환하여 문자열을 새로 읽지 않고서도 덧붙이는 장소를 결정할 수 있는 최적화된 mystrcat 함수를 새로 작성하였다.


  • mystrcat 함수

     
  •  strcat 사용



    네모친 부분이 strcat 사용 부분이고, a라는 글자 뒤에 z라는 글자를 3000번 붙여주었다. (시간 측정을 위해서 3000번을 사용하였고, 한 두번 붙여줄 시에는 수행시간이 0.00이 나오게 된다.)

  • 실행시간 비교

    strcat와 mystrcat 두 함수 모두 3000번씩 사용 하였는데, strcat는 수행시간이 14.187이 나왔고 mystrcat는 수행시간이 13.843이 나와 기존에 있는 strcat 함수가 느리다는 결과가 나왔다.

'and so on' 카테고리의 다른 글

[10.25] 프로젝트 진행사항  (0) 2009.10.26
포인터를 왜 쓰는가?  (0) 2009.10.05
실행 속도 측정하기  (0) 2009.09.14
베풂  (0) 2009.06.02
흑백 이미지 부분 컬러 만들기  (0) 2009.05.29

실행 속도 측정하기

자료구조 과제 할때 실행 속도 측정하는 것이 많이 나왔는데.
한동안 실습 시간이 없어 잊고 지내다가 불쑥 나온 과제
실행 속도 비교하기.
오랜 만에 하려니 뭔가 이상하다.






  • 2)수행할 알고리즘
    아래 부분에 시간을 측정하고 싶은 알고리즘을 작성.



 









이번에 strcat에 문제점에 관한 과제를 하게 되었는데,
실행속도에서 내가 만든(?) 함수와 내장함수인 strcat를 비교하는 것이었다.

strcat함수를 한번 사용한다고 실행속도가 나오는 것이 아니여서 
3000번 정도 while문으로 실행하였는데,
처음에 start = clock();이 부분을 while문 안에 넣어버린 것이었다.
함수를 사용할 수록 시간이 늘어나야 하는것은 당연한 것인데,
계속 들쭉날쭉 왜그러지 왜그러지 생각하는데,
아뿔싸 바보..
while문 전에다 놔야지 3000번 실행한 총 시간이 나오는건데,,
계속 함수 한번 실행하는 시간을 해 놓으니까 들쭉날쭉..

으구 ㅋㅋㅋㅋ
담부터는 이런 실수 안하길 .

'and so on' 카테고리의 다른 글

[10.25] 프로젝트 진행사항  (0) 2009.10.26
포인터를 왜 쓰는가?  (0) 2009.10.05
strcat 실행시간 측정  (0) 2009.09.29
베풂  (0) 2009.06.02
흑백 이미지 부분 컬러 만들기  (0) 2009.05.29