这是我的代码。 findMin()函数中的语句int value = atoi(ptr [index])给出了一个错误,如截图所示。c atoi()函数不起作用
奇怪的是,当我使用相同的atoi()函数在主,一切工作相当不错,但它在findMin尖叫!
CODE:
void* findMin(void *param);
int main(int argc, char *argv[])
{
pthread_t t2; //for min
num=argc;
/*int index=1; THIS WORKS
int value=atoi(argv[index]);*/
//creating worker thread
pthread_create(&t1,NULL,findMin,argv);
pthread_join(t2,NULL); //wait for min
printf("The minimum value is %d\n",min);
return 0;
}
void* findMin(void *param)
{
char *ptr=(char *) param; //casting
int index=1;
min=ptr[1];
for(index; index<num; index++)
{
int value=atoi(ptr[index]); //THIS SCREAMS LIKE HELL!
if(comp<min) min=value;
}
}
你需要atoi(ptr)或atoi(ptr +索引); – Claris
@Claris,我认为OP正试图将单个字符转换为整数,'ptr + index'将转换字符串的其余部分 –
不要发布文本图像! – Olaf