Вы можете написать собственную функцию устройства realloc для вашего типа данных.
Просто выделите новое пространство для нового массива, скопируйте старые значения в новое, освободите старое пространство массива, верните новое с большим пространством.
Примерно как следующий фрагмент кода:
__device__ MY_TYPE* myrealloc(int oldsize, int newsize, MY_TYPE* old)
{
MY_TYPE* newT = (MY_TYPE*) malloc (newsize*sizeof(MY_TYPE));
int i;
for(i=0; i<oldsize; i++)
{
newT[i] = old[i];
}
free(old);
return newT;
}
Но обязательно позвони, если тебе это действительно нужно. Также добавьте правильную проверку ошибок.