您好,我有以下代码...
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/