Hier ist mein Code. Die Anweisung int Wert = atoi (ptr [index]) in der Funktion findMin() gibt einen Fehler wie im Screenshot gezeigt.c atoi() Funktion funktioniert nicht
Das Merkwürdige ist, dass, wenn ich die gleiche atoi() Funktion in Haupt verwenden, alles ziemlich gut funktioniert, aber es schreit in 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;
}
}
Sie brauchen atoi (ptr) oder atoi (ptr + index); – Claris
@Claris, ich denke, OP versucht, einzelne Zeichen in Ganzzahlen zu konvertieren, 'ptr + index' wird den Rest der Zeichenfolge konvertieren –
Veröffentlichen Sie keine Bilder von Text! – Olaf