管道C上的多维数组

时间:2017-05-07 20:39:26

标签: c arrays multidimensional-array pipe

我有一个看起来像这样的结构:

struct result {
    int personId;
    int questionId;
    int choice;
};

我正试图建立父母和孩子之间的双向交流 我有一个数组:

struct result finalResults[3][20];

我正在通过管道逐行发送这个2D数组(来自子部分):

write(p2[1], &finalResults[0], sizeof(finalResults[0]));
write(p2[1], &finalResults[1], sizeof(finalResults[1]));
write(p2[1], &finalResults[2], sizeof(finalResults[2]));

然后我试图在父方面阅读:

    while ((n = read(p2[0], resultBuffer, sizeof(resultBuffer)) > 0)) {
           int i = 0;
           for (i = 0; i < 20; ++i) {
           if (resultBuffer[i].choice != 0)
              printf("Result for question id: %d, person id: %d, choice: %d\n", resultBuffer[i].questionId, resultBuffer[i].personId, resultBuffer[i].choice);
}

resultBuffer是:

struct result resultBuffer[1024];

一切顺利,但是父母只读取2D数组的第一行而不是其余部分 可能是什么问题呢?
谢谢。

0 个答案:

没有答案