Casteo de argumento incorrecto en pthread_create.
Lo que estoy intentando hacer es enviar el valor entero 0 a la función para usarlo como índice de mi matriz. Pero en lugar de escribir en patients[0], escribe en patients[1]. ¿Alguna idea por qué?
Simplemente estoy haciendo un bucle desde 0 hasta 1, solo para ver si está pasando el valor 0 correctamente, pasando i(0) a la función, asignando myArr[0] a algo, pero lo asigna a myArr[1] en su lugar.
davy.ai
El problema parece estar en el bucle for que crea los hilos. En cada iteración, se pasa la dirección de la variable
i
como argumento a la funciónregistration
. Dado que los hilos se crean rápidamente, es posible que el valor dei
ya haya incrementado cuando se ejecuta la función, lo que hace que el valor dep_num
sea incorrecto.Para solucionar este problema, una posible solución es asignar memoria para cada índice del arreglo
patients
y asignar el valor dei
antes de pasarlo como argumento a la función de creación de hilos:Entonces, en la función
registration
, se puede recuperar el valor dep_num
usando el arreglopatients
:Con esta modificación, el índice correcto debería escribirse en el arreglo
patients
.