codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #include <error.h> #include <stdlib.h> typedef struct DF_LIST { int a; }ListType; char fn_error(char *message); //함수 선언 int fn_CallByReference(char * r) { printf("[IN] fn_CallByReference : %s\n", r); *(r+0) = 'a'; *(r+1) = 'b'; *(r+2) = 'c'; *(r+3) = 'd'; } int fn_CallByValue(char r [10]) { printf("[IN] fn_CallByValue : %s\n", r); r[0] = '1'; r[1] = '2'; r[2] = '3'; r[3] = '4'; } int fn_CallByValueRef(char r [10]) { printf("[IN] fn_CallByValueRef : %s\n", r); *(r+0) = '1'; *(r+1) = '2'; *(r+2) = '3'; *(r+3) = '4'; } int get_entry(ListType *list, int pos) { error(0,0,"오류 발생"); fn_error("오류 발생"); } //error() //http://man7.org/linux/man-pages/man3/error.3.html //exit() //http://man7.org/linux/man-pages/man3/exit.3.html char fn_error(char *message) { fprintf(stderr, "%s\n", message); exit(1); return 0; } int main() { // char ca[10] = {"test"}; fn_CallByReference(&ca[0]); printf("[OUT] main() - fn_CallByReference : %s\n", ca); // fn_CallByValue(&ca[0]); printf("[OUT] main() - fn_CallByValue : %s\n", ca); fn_CallByValueRef(&ca[0]); printf("[OUT] main() - fn_CallByValueRef : %s\n", ca); // char * p = (char*) malloc (10); memset(p, 0x00, 10); *(p+0) = 't'; *(p+1) = 'e'; *(p+2) = 's'; *(p+3) = 't'; fn_CallByReference(p); printf("[OUT] main() - fn_CallByReference : %s\n", ca); // memset(p, 0x00, 10); *(p+0) = 't'; *(p+1) = 'e'; *(p+2) = 's'; *(p+3) = 't'; fn_CallByValue(p); printf("[OUT] main() - fn_CallByValue : %s\n", p); fn_CallByValueRef(p); printf("[OUT] main() - fn_CallByValueRef : %s\n", p); free(p); // ListType *list; get_entry(list, 0); fn_error("위치 오류"); return 0; }
Private
[
?
]
Run code
Submit