#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;
}