İşte benim kodum. FindMin() işlevindeki int value = atoi (ptr [index]) ifadesi, ekran görüntüsünde gösterildiği gibi bir hata verir.c atoi() işlevi çalışmıyor
garip şey ana aynı atoi() işlevi kullandığınızda, her şey oldukça iyi çalışıyor ama findMin bağırır olmasıdır! atoi
imzasıyla birlikte
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) veya atoi (ptr + index); – Claris
@Claris, OP'nin tekli karakterleri tamsayıya dönüştürmeye çalıştığını düşünüyorum, 'ptr + index' dizginin kalanını çevirecek –
Metin görüntülerini yayınlama! – Olaf