Ошибка в арифметике указателей (OpenCL) - PullRequest
0 голосов
/ 19 января 2012

Может кто-нибудь объяснить мне, почему этот код не работает?

__kernel void foo(__global const void* a)
{
  __global const uchar* currentPosition = (__global uchar*) a;

  // Update the position
  currentPosition += 4;
}

Когда я пытаюсь прочитать значение currentPosition после приращения, я получаю тот же результат, что и когда я не делаю арифметику.

Почему это происходит?

Спасибо.

Ответы [ 2 ]

1 голос
/ 21 января 2012

Это, вероятно, ключевое слово const, в котором вы объявляете currentPosition.C ++ не позволяет вам изменять значения.Вы уже установили currentPosition, когда объявляете это.

0 голосов
/ 23 января 2012

Я обнаружил ошибку вчера ночью. Проблема была не в арифметике указателей, а в выравнивании данных в буфере a .

Извините, ребята, но я новичок в OpenCL: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...