Я создаю матрицу измерения [10] [10], в которой хранится структура Contentor, я не могу ни изменить значения внутри матрицы, ни сохранить их.
Я пытаюсь проверить, есть ли какие-либо данные с циклом for, но не вижу, что внутри.
Когда я сохраняю данные внутри матрицы, я пытаюсь создать поток каждого из них для обработки данных, но я не знаю, как это сделать ...
Я попытался использовать malloc и calloc, я создал матрицу в зачаточном виде, но, похоже, ничего не работает ...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
struct Contentor {
char nSerie[36];
char porto[4];
};
void* direcionaParaDestino(void* arg) {
struct Contentor *arg_struct = (struct Contentor*) arg;
char destino[4] = arg_struct->porto;
if(strcmp(destino, "ANR")) {
} else if (strcmp(destino, "BUS")) {
} else if (strcmp(destino, "DXB")) {
} else if (strcmp(destino, "GUA")) {
} else if (strcmp(destino, "HAM")) {
} else if (strcmp(destino, "HKG")) {
} else if (strcmp(destino, "LAX")) {
} else if (strcmp(destino, "RTM")) {
} else if (strcmp(destino, "SHA")) {
} else if (strcmp(destino, "SIN")) {
}
pthread_exit(0);
}
int main() {
struct Contentor parque[10][10] = malloc(100*sizeof(struct Contentor));
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
parque[i][j].nSerie = "";
parque[i][j].porto = "";
}
}
pthread_t tids[10][10];
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
if(strcmp(parque[i][j].nSerie,"")) {
printf("Lugar [%d][%d] encontra-se Livre\n", i, j);
//Criar Thread que espera ate 5 segundos
short randomNumber = rand() % 5
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_create(&tids[i][j], &attr, direcionaParaDestino, 1 );
sleep(randomNumber);
} else {
printf("Lugar [%d][%d] encontra-se Ocupado\n", i, j);
}
}
}
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
pthread_join(tids[i][j],NULL);
}
}
}
Я хочу, чтобы это была матрица этой структуры, проверьте, есть ли какие-либо данные в каждом месте, затем сохраните их и создайте поток для каждой сохраненной переменной, который будет ждать до 5 секунд перед обработкой информации.