sigu@sigu-desktop:~/work$ cat fu_main.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
int sub_f(char *data,int flg); //プロタイプ宣言
int main()
{
char *ss=NULL;
int ret=0;
int (*func)(char *,int ); //関数ポインタを格納する変数を宣言する
func = &sub_f; //関数ポインタを格納する
ss =(char *)malloc(64);
if(ss==NULL)
{
printf("no mem\n");
return 1;
}
else
{
memset(ss,0x0,64);
printf("%s\n",ss);
memset(ss,0x41,32); //main関数側で設定した文字列を表示する。Ax32文字
printf("main:%s\n",ss);
}
ret = func(&ss[0],1); //関数をコールする、
printf("ret:%d\n",ret);
free(ss);
printf("First compiler\n");
return 0;
}
int sub_f(char *data,int flg)
{
printf("func:%s\n",data);//関数コール側で貰った文字列を表示する
printf("flg:%d\n",flg);
return 0;
}
sigu@sigu-desktop:~/work$ ./a.out #実行する
main:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA #main側で表示される
func:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA #関数側で表示される
flg:1
ret:0
First compiler
sigu@sigu-desktop:~/work$
コメント