I was trying to use thrust::device_vector to store a struct and it worked fine until I called push_back() twice and the program crashed. The program also crashed when I used resize().
Here is the code I am using, I am compiling it with nvcc:
#include <iostream>
#include <thrust/device_vector.h>
using namespace thrust;
using namespace std;
struct Test
{
  int value;
  __device__ __host__
  Test() {
    value = 0;
  }
  __device__ __host__
  ~Test() {}
};
int main() {
  device_vector<Test> test_d = device_vector<Test>();
  cout << "First" << endl;
  test_d.push_back(Test());
  cout << "second" << endl;
  test_d.push_back(Test());
  cout << "done" << endl;
  return 0;
}
the output of the program gives me this:
First
second
nvcc error : '.\"a.exe"' died with status 0xC0000409
Is this program correct, as in does it crash on other machines or am I missing something?
User contributions licensed under CC BY-SA 3.0