這是我的代碼。 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