我正在编写一个C程序,其中我正在使用IPC的管道数组。我收到错误“下标值既不是数组也不是指针”。任何人都可以告诉我哪里出错了?
这是我收到错误的代码:
int p[100][2];
//in for loop
pipe(p[i-1]);
//in child process
close(p[i-1][0]);
write(p[i-1][1], out, sizeof(NODE));
//in parent process
close(p[j][1]);
ead(p[j][0], tmp, sizeof(NODE));
答案 0 :(得分:3)
专家提示:在C中解决构建错误时,不会在列表中选择任何随机错误并尝试修复它。从产生的第一个错误开始,因为它可能是后续许多其他错误的根本原因。
答案 1 :(得分:1)
您的代码中的其他位置必须有一个语法错误,它会抛弃int p[100][2]
的声明,因此标识符p
未被适当地解析为{{1}类型的二维数组在堆栈上分配(或静态分配为全局变量......你没有提到它被声明的位置。)。由于未正确解析标识符,因此它还会在代码中抛弃int
的所有其他用法。