c - 从 pthread 函数返回向量?
问题描述
在找出从 pthread 函数返回向量的语法时遇到了一些麻烦。这是我目前拥有的:
typedef struct vectorData {
vector v1;
vector v2;
} vectorData;
void *vectorAddThread(void *arg) {
vectorData *data = (vectorData *)arg;
vector v1 = data->v1;
vector v2 = data->v2;
vector result = {v1->x + v2->x, v1->y + v2->y, v1->z + v2->z};
return (void*) result;
}
我在最后两行关于返回结果和添加部分的错误。谢谢
解决方案
您不能将 a 转换struct
为void *
指针。您需要vector
在您的情况下动态分配 a malloc
,并返回指针。
vector *result = malloc(sizeof(vector));
result->x = ?;
result->y = ?;
result->z = ?;
return (void *)result;
现在这将解决struct
从返回的函数返回 a 的问题void *
。但是,如果您使用的是 pthreads,您不应该从它们返回对象,您需要将vector
其作为用户数据传递给arg
.
推荐阅读
- swift - Which Swift character count should I use with remove(first:)?
- jquery - ng-click not working with .load(html)
- ios - Xcode 9 - “文件是为 x86_64 构建的,它不是被链接的架构(armv7)”
- macos - 关于通过火线调试 macOS 内核
- vba - 具有 2 个单元格值的数据透视表过滤
- python - keras cnn_lstm 输入层不接受一维输入
- amazon-dynamodb - DynamoDB 嵌套查询
- dji-sdk - 使用新的 DJI-UXSDK-iOS 4.7 编译应用程序时出错,找不到 FFmpeg 库
- excel - 索引匹配正确的公式
- python - 使用 pandas 进行高效的成对计算