将整数数组强制转换为空指针-phread_create
Cast integer array to void pointer - pthread_create
为了传递参数,pthread需要void指针。我想传递两个变量,int
和long
。为了给自己省去一些麻烦,我将改为通过两个long
。所以我就是这么做的:
int main(int argc, char *argv[])
{
/*SOCKET INIT*/
pthread_t socketTh;
long data[2] = {ip2l(IP),80};
pthread_create(&socketTh, 0, &serverConnect, (void*)data); //ERROR HERE
while(true) {
/*event loop*/
}
quit_thread(&sockerTh); //just an EXAMPLE! I don't know how to quit threads, I will google it later
return 0;
}
错误:
错误:从"void(*)(void*)"到"void*(*)"的转换无效
但这似乎不是将长指针重新键入为空指针的正确方法。我不知道Stackoverflow暗示我没有帮助的线程,以及任何谷歌搜索。所以,也许,试着慢慢解释,因为我是初学者,我仍然迷失在数据类型中
非常感谢。
更新:
我在main()中创建了unsigned long*
。这意味着这个变量将和程序本身一样长。
错误消息指的是第三个参数。CCD_ 5想要指向采用void*
并返回void*
的函数的指针。显然,函数serverConnect
是一个接受void*
并返回void
的函数。
相关文章:
- 为什么会出现 gettnig 运行时错误:加载类型为"_Bit_type"(stl_bvector.h) 的空指针?
- 运行时错误:引用绑定到类型为"int"的空指针
- 这个失败的测试是将零添加到空指针未定义的行为、编译器错误还是其他什么?
- 为什么我在空指针错误(链表)中获取成员访问权限
- 从向量到空指针的 memcpy(反之亦然)不起作用
- 空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?
- 成员访问是否在空指针上定义C++?
- 尝试将对象插入空指针数组时出现分段错误
- 为什么我们需要在 C++ 中检查空指针,而在 Java 中不需要?
- 是否允许向空指针添加零?
- 为什么 C 样式字符串的工作空指针检查不?
- 在函数内初始化无符号字符指针将返回空指针
- 为什么多维数组中的空字符串文本衰减为空指针?
- C++ 取消引用指向矢量的空指针时的分段错误
- 错误 C6011:取消引用空指针"NAME"。C++
- cppcheck取消引用空指针
- 打印空指针时,std::cout 可以打印 "NULL" 而不是 0 吗?
- 递增空指针无法正确设置值
- Qt - 将空指针(原始数据)转换为 QImage 并将其显示在标签上
- 将多映射转换为空指针,然后转换回多映射