title: PyArray_SimpleNewFromData example
body: <p>I know that this thing has been answered a lot of times and I have also read the documentation as well but still I am not able to clearly understand how is this working. As in, I am not able to understand how the values are populated in its arguments. The examples are not very clearly explaining it(or may be I am not able to). Can anyone please help me understand how are the arguments of this function populated? What should be their values? 
  I have to pass a vector from C++ to Python without reallocating the memory.
  Any help is much appreciated. I am stuck on this from a lot of days.</p>
  
  <p>My code which I am implementing:</p>
  
  <pre><code>int main(int argc, char *argv[])
  {
  PyObject *pName, *pModule, *pDict, *pFunc, *pValue, *pArgs,*pXVec,*c, *xarr1;
  int i;
  float fArray[5] = {0,1,2,3,4};
  //float *p = &amp;fArray[0] ;
  npy_intp m = 5;
  //void* PyArray_GetPtr(PyArrayObject* aobj, npy_intp* ind)¶
  
  
  // Initialize the Python Interpreter
  Py_Initialize();
  PySys_SetArgv(argc, argv); 
  // Build the name object
  pName = PyString_FromString(argv[1]);
  
  // Load the module object
  pModule = PyImport_Import(pName);
  printf("check0\n");
  // pDict is a borrowed reference 
  pDict = PyModule_GetDict(pModule);
  printf("check1\n");
  // pFunc is also a borrowed reference 
  pFunc = PyDict_GetItemString(pDict, argv[2]);
  printf("check2\n");
  //    if (PyCallable_Check(pFunc)) 
  //    {
  // Prepare the argument list for the call
  //xarr1 = PyFloat_FromDouble(xarr[1]);
      printf("check3\n");
  c = PyArray_SimpleNewFromData(1,&amp;m,NPY_FLOAT,(void *)fArray);
  printf("check3\n");
      pArgs = PyTuple_New(1);
      PyTuple_SetItem(pArgs,0, c);    
  
      pValue = PyObject_CallObject(pFunc, pArgs);
  
      if (pArgs != NULL)
      {
          Py_DECREF(pArgs);
      }
  
  //}
  //   else 
  //    {
  //        PyErr_Print();
  //    }
  
  // Clean up
  Py_DECREF(pModule);
  Py_DECREF(pName);
  
  // Finish the Python Interpreter
  Py_Finalize();
  
  return 0;
  }
  </code></pre>