【发布时间】:2014-02-21 21:23:17
【问题描述】:
我编写的代码出现以下错误。
无法将 char (*)[10][256] 转换为 char* 以将参数 1 转换为 int pushInBuffer(char*)。
我不知道应该向pushInBuffer() 引入哪种类型的输入参数。
void *consumer(void *var) {
int i;
//char line[256];
for(;;) {
if(popFromBuffer(&buf))
fprintf(stderr, "Error Consuming");
else {
for(i = 0; i < BUFFERSIZE; i++)
fputs(buf[i], out);
}
}
pthread_exit(0);
}
int popFromBuffer(char *item) { // How do I give a 2_D array as input parameter and access in the function.
sem_wait(&fullCount);
sem_wait(&mutex);
*item = buf[removePointer][256];
buf[removePointer++][256] = -1;
removePointer = removePointer % BUFFERSIZE;
sem_post(&mutex);
sem_post(&emptyCount );
return 0;
}
【问题讨论】:
-
显示您如何调用
pushInBuffer以及pushInBuffer参数的类型。 -
@ouah 抱歉,我意识到并编辑了问题。
-
你没有显示
buf变量的声明还是不完整的。 -
buf声明在哪里??? -
@barak :我再次编辑。它在全球范围内声明。
标签: c function input producer-consumer