In the code for a C library I am using the author has defined some void pointers eg. here webCoreC is void*

Code:

WebCoreC webCore = awe_WebCore_new(); // OK

WebViewC m_webView = awe_WebCore_createWebView(webCore, 200, 200);
WebViewListenerC listener;
memset(&listener, 0, sizeof(WebViewListenerC));
listener.onBeginLoading = onBeginLoading;
listener.onDOMReady = onDOMReady;
listener.onCallback = onCallback;
listener.onRequestDownload = onRequestDownload;

awe_WebCore_setBaseDirectory(webCore, "C:\\Test\\");
awe_WebView_createObject(m_webView, L"Client");

I want to be able to return webCore in a get function so other classes can access it but when I make it a member or global I get a crash.

Code:

WebCoreC webCore; // global

Error
GUIScene::Initialize(
std::vector<Properties::Property> Properties
)
{
webCore = awe_WebCore_new(); // Causes crash later

WebViewC m_webView = awe_WebCore_createWebView(webCore, 200, 200);
WebViewListenerC listener;
memset(&listener, 0, sizeof(WebViewListenerC));
listener.onBeginLoading = onBeginLoading;
listener.onDOMReady = onDOMReady;
listener.onCallback = onCallback;
listener.onRequestDownload = onRequestDownload;

awe_WebCore_setBaseDirectory(webCore, "C:\\Test\\");
awe_WebView_createObject(m_webView, L"Client")

Can you tell me why this happens? Is it some problem with the library itself or am I doing something wrong?