そのため、スレッドプロジェクトに取り組んでおり、ファイルの1つをテストして、構造体とフィールドが正しい値を取得していることを確認しています。私はこの関数を実行しています:
struct ReportQueue {
sem_t count;
pthread_mutex_t mutexAdd;
ReportList *RQList;
};
ReportQueue *RQCreate() {
ReportQueue *rq;
printf("RQCreate() called\n");
rq = calloc(1, sizeof(ReportQueue));
sem_init(&rq->count, 0, 0);
pthread_mutex_init(&rq->mutexAdd, NULL);
rq->RQList = NULL;
return rq;
}
このメインで:
int main() {
ReportQueue *rQueue;
Report report;
rQueue = RQCreate();
printf("SemCount: |%d| RQList: |%d| MutexAdd |%d|\n", rQueue->count, rQueue->RQList, rQueue->mutexAdd);
printf("SemCount: |%d|\n", rQueue->count);
printf("RQList: |%d|\n", rQueue->RQList);
printf("MutexAdd: |%d|\n", rQueue->mutexAdd);
return;
}
そして、私はこの出力を取得しています:
RQCreate() called
SemCount: |0| RQList: |128| MutexAdd |0|
SemCount: |0|
RQList: |0|
MutexAdd: |0|
それは私には意味がありません。「RQList」の値は、印刷方法によって変わることはありませんか?私は何が間違っているのですか?