私が達成しようとしていることの本質は次のとおりです。引数として整数ポインターを期待する関数に、文字列の形式である整数 (整数ポインター) のアドレスを渡したいと思います。簡単なコードに関しては、次のことを行いたいです。
void dsp(int *);
int main() {
char *b;
int a=2;p=&a;
b = (char *)malloc(100*sizeof(char));
sprintf(b, "%p",p);
puts( b );
dsp(&a);
dsp((int *)strtol(b,16));
free(b);
return 0;
}
void dsp(int *addr)
{
printf("val:%d\n",*addr);
}
そして、これが私の出力です:
0x7fbffffa6c (from puts(b))
val:2
Segmentation fault
上記の何が問題なのか、および/またはそれをどのように行うかを誰かが提案できますか? どんな助けでも大歓迎です。ありがとうございました。