如何成功地使用动态数组多线程传递参数
How to successfully use dynamic array to pass parameter with mutithread
void * bubbleSort(void * data){
int * str;
str = (int* ) data;
int temp = 0;
for ( int i = 0 ; i < len ; i++ ){
for (int j = i + 1; j < len ; j++ ){
if(str[i] > str[j]){
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main(){
int *data= new int[1000000];
...
pthread_t thread[input];
for ( int i = 0 ; i < input ; i ++){
pthread_create(&thread[i],NULL,bubbleSort,arguments);
pthread_join(thread[i],NULL);
}
}
我有int *data[1000000]
,我想用pthread把参数传递给冒泡排序
上面是我写的代码,但没有输出
如何成功工作?
要解决眼前的问题:您的data
变量定义了错误的类型。int *data[1000]
是1000个int *
的阵列,其衰变为int**
。您的bubbleSort
函数需要一个int *
。
按如下方式声明data
:
int * data = new int[10000];
然后你可以像现在一样简单地将它作为CCD_ 10传递给CCD_。
然而,现代C++有一个std::thread
,它更容易使用:
std::thread sorter(bubbleSort, data);
sorter.join();
相关文章:
- std::向量与传递值的动态数组
- 将数组动态分配到具有指针参数的函数中
- 我可以以某种方式使我的矢量/数组动态更改装置数量吗?
- 使用 new: "potentially uninitialized pointer"将对象数组动态分配给指针
- 为什么C 没有方便的方式来为多维数组动态分配内存
- 如何制作具有动态大小的数组?动态数组的一般用法(可能还有指针)
- c++中的数组动态内存分配
- 多维数组动态分配的内存图
- 如何在 c++ 中使用 2-D 固定数组为 4-D 数组动态分配内存
- C++ 我在数组/动态内存方面遇到了一些问题
- C++ 中从数组动态强制转换
- C++中高维数组动态内存分配的正确方法.
- 从 C++ 结构中包含的指针数组动态分配和访问内存
- 对象数组动态内存分配
- 为二维数组动态分配内存时出错
- 如何将2d数组动态分配给结构
- 为结构数组c++动态分配内存
- 将数组动态添加到多维数组
- 类中的类数组-动态数组(c++)有问题
- 分配对象数组动态冻结