我在编译期间遇到上述错误:
结构:
struct connection_handlers
{
int m_fd;
}
struct connection_handlers ** _queue;
int main()
{
_queue = (struct connection_handlers **) malloc ( 3* sizeof ( struct connection_handlers *)); //Allocating space for 3 struct pointers
for (i=0;i<3;i++)
{
_queue[i]->m_fd=-1;
}//Initializing to -1
//.....
//I assign this varaible to the file descriptor returned by accept and then
//at some point of time i try to check the same variable and it gives compilatio error.
for (i=0;i<3;i++)
{
if (_queue[i]->m_fd!=-1)
}//It give error at this line.
}
错误的原因可能是什么。
由于
答案 0 :(得分:4)
既然你用C和C ++标记了这个问题,那么这就是你的C ++出了什么问题。
struct
放入你的演员阵容int
用于循环计数器;
_queue
声明为混乱类型一旦你清理它就可以编译好。
#include <cstdlib>
struct connection_handlers {
int m_fd;
};
int main() {
connection_handlers** _queue = (connection_handlers**) malloc(3*sizeof (connection_handlers*));
for (int i=0;i<3;i++) {
_queue[i]->m_fd=-1;
}
for (int i=0;i<3;i++) {
if (_queue[i]->m_fd!=-1)
; // DOES NOTHING
}
}
答案 1 :(得分:1)
_queue[i]
是connection_handlers *
。您无法将其与-1
进行比较,后者为int
。您的意思是检查_queue[i]->m_fd
吗?