gpt4 book ai didi

c - 函数入参类型转换不当

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:19 25 4
gpt4 key购买 nike

我编写的代码出现以下错误。无法将参数 1char (*)[10][256] 转换为 char*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;
}

最佳答案

注意:如果您将 buf 用作全局变量,则无需将它从一个函数传递到另一个函数。

//如何给一个二维数组作为输入参数并在函数中访问。

int popFromBuffer( char *item ); 

改为

int popFromBuffer( char* item[] );

buf[BUFFERSIZE][256]  change to char* buf[BUFFERSIZE];

或者你可以用结构来做

typedef struct _BUF
{
buf[BUFFERSIZE][256];
}BUF;

int popFromBuffer(BUF b);
{
/* access buffer */
b.buf

}

int main()
{
BUF b ={0};
popFromBuffer(b);
return 0;
}

关于c - 函数入参类型转换不当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21945450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com