我正在做一个nodejs插件。下面的代码是进行语音识别的最后一个例程的一部分:
char * resultado = Julius[cliente_id].NotifyCallbackLoop("random");
float cm = Julius[cliente_id].ReturnCM();
Julius[cliente_id].~SREngineJulius();
cout << "End Recognition - Client -->" << cliente_id << endl;
// create a ISO-8859-1 a.k.a. Latin1 string
const uint8_t* octets = reinterpret_cast<const uint8_t*>(result);
Local<String> devolve = String::NewFromOneByte(isolate, octets);
Local<Number> num = Number::New(isolate, cm);
Local<Object> obj = Object::New(isolate);
obj->Set(String::NewFromUtf8(isolate, "cm"), num);
obj->Set(String::NewFromUtf8(isolate, "recog"), devolve); //C++--->JS
args.GetReturnValue().Set(obj);
如果result
是像“home”这样的小词,那么对于服务器所拥有的许多用户来说,这样做会很好。但如果这个词更大,就像“信号处理实验室”一样,服务器会在插件中崩溃。在调试之后,我得出结论,在"End Recognition - Client -->"
之前,插件将运行没有问题。然后会出现此错误:
Debug Assertion失败!
文件:f:\ vctools \ crt \ crtw32 \ misc \ dbgheap.c 行:1322表达式:_CrtIsValidHeapPointer(pUserData)
答案 0 :(得分:0)
正如@molbdino所说,析构函数会导致问题。删除它将解决&#34; Debug Assertion Failed&#34;。