C语言,如何将(void*)类型的参数变成int型使用

#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>

void* th_fn(void* arg)
{
int* distance = (int*)arg;
int i;
printf("%d\n",*distance);/////////段错误
for(i=0;i<=*distance;i++)
{
printf("%lx run %d\n",pthread_self(),i);
sleep(1);
}

return (void*)0;
}
int distance = *(int*)arg;//也是段错误

第1个回答  2018-09-11
代码没有错误,检查一下arg的值是否指向了正确位置。本回答被提问者采纳
第2个回答  2018-09-10
void* ptr = NULL;
int i = (int)ptr;
printf("%d", i); //0

本回答被网友采纳