привет У меня есть следующий код ...с размером одного массива в другой
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);
...
}
как сделать cudaMalloc для t, как если бы он был одномерным массивом (с учетом того, что каждый элемент имеет разный размер)?
так вы имеете в виду, если, например, у меня есть 200 элементов, а общее количество символов всех тезисов элементов, скажем, равна N, то размер size_t = 200 * N * SizeOf (Char); ? – asel
Я так думаю. Я думаю о цифровой картинке 1024x1024. Он имеет 1024 строки, и каждая строка имеет 1024 элемента. Общее количество элементов - 1024 * 1024. – Pace
скажем, у меня есть следующее изображение, где у моего массива всего три элемента. a [0] хранит 15 символов, а [1] хранит 3 символа, а [2] хранит 5 символов. Таким образом, общее число элементов становится равным 15 + 3 + 5. Это? Или это (15 + 3 + 5) * sizeof (char)? – asel