c 一个数组到另一个数组的大小

标签 c arrays malloc cuda

您好,我有以下代码...

int *a, *b;
int *d;
int N = 2000;
size_t size = N*sizeof(int);

a = (int *) malloc(size);
b = (int *) malloc(size);
  ...
cudaMalloc((void **) &d, size);

它工作得很好......现在假设我有以下内容

char **t = malloc(2000* sizeof *t);
for(...)
{
   ...
   t[i] = (char *)malloc(sizeof(char)*changing_length);
   ...
}

如何为 t 执行 cudaMalloc,就好像它是一维数组(考虑到每个元素具有不同的大小)?

最佳答案

如果你有一个常规的二维字符数组,你可以用...计算大小

width * height * sizeof(char)

如果您有一个不规则的二维数组(某些行的长度不同),那么您必须在其他地方跟踪字符总数,或者在执行 cudaMalloc 之前循环并计算您有多少字符。

关于c 一个数组到另一个数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1971340/

相关文章:

c - FreeRTOS Select TCP 套接字不可用?

java - 从并行数组中搜索和显示信息

c - malloc 问题导致段错误

使用 strcpy 连接字符串

c - 随机数C

arrays - 确定是否可以在没有分支的情况下生成整数序列的技术?

c - 检查字符数组是否为空的最佳方法

c - 如何在 C 语言中为特定的结构类型正确使用 free

c - 在malloc C/C++之前,malloc无需类型转换即可工作

c - 执行 'strend' 时 while 循环错误