我有一个指向返回const char指针的函数的指针。我的问题是如何打印指针,然后再打印指针所引用的对象(字符串本身)。
以下是代码:
以下是代码:
#include <stdio.h>
char const *func(void)
{
printf("Printed func string.\n");
return "Pointed func string.\n";
}
int main(void) {
char const *(*fp)(void) = func;
/*print statements here*/
return 0;
}
我遇到了一个问题:要么出现“ISO C禁止将函数指针转换为对象指针类型”错误,要么出现一些未定义的行为。
编辑:
int main(void) {
char const *(*fp)(void) = func;
unsigned char *p = (unsigned char *)&fp;
/*print statements here*/
printf("The: %p\n",(char *) p);
return 0;
}
输出: 0x7fff36753500
不正确。
dladdr
函数来获取全局函数的名称,只需给出其地址即可。 - Basile Starynkevitch