CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

这段程序内存如何释放?

楼主czcty(peter)2005-04-28 13:35:16 在 C/C++ / C语言 提问

程序介绍:用一个for循环连续调用   涵数:doit(),但是随着调用次数增多,内存耗用也大了,请问没次调用的doit如何释放它?  
   
   
  头文件和全局变量:  
  //   WaveASR.cpp   :   take   a   wav   file  
  //   reco   the   content   into   text  
  #include   "stdafx.h"  
  #include   <windows.h>  
  //   SAPI   Header   Files  
  #include   <sapi.h>  
  #include   <spdebug.h>  
  #include   <sphelper.h>  
  #include   <spddkhlp.h>  
  void   fnMultiByteToWideChar(WCHAR*,   char*);//   申明两个函数  
  void   fnWideCharToMultiByte(char*,   WCHAR*);//   申明两个函数  
  void   doit();  
  char   filename[15];  
  char   outfilename[256];  
  int   line;  
  //////////  
        CComPtr<ISpStream>   cpInputStream;//对象  
        CComPtr<ISpRecognizer>   cpRecognizer;  
        CComPtr<ISpRecoContext>   cpRecoContext;  
        CComPtr<ISpRecoGrammar>   cpRecoGrammar;  
        CComPtr<ISpRecoResult> cpRecoResult;  
        CComPtr<ISpPhrase>   pPhrase;  
        WCHAR   *pwszText;  
      //   CSpDynamicString   pwszText;  
        HRESULT   hr;  
        char   filecontent[1000];  
  char   filecontenttmp[1000];  
   
        WCHAR   *pwWaveFile   =   L"file.wav";  
  //////////  
   
   
  涵数:  
  void   doit()  
  {  
  // char   filecontent[1000];  
  // char   filecontenttmp[1000];  
  strcpy(filecontent,"");  
  strcpy(filecontenttmp,"");  
  //   filename   全局变量  
  printf("%s   %d\n",filename,   line   );  
   
  fnMultiByteToWideChar(pwWaveFile,   filename);  
   
  hr   =   cpInputStream.CoCreateInstance(CLSID_SpStream);  
  CSpStreamFormat   sInputFormat(SPSF_22kHz16BitMono,   &hr);  
  hr   =   cpInputStream->BindToFile(pwWaveFile,  
    SPFM_OPEN_READONLY,  
    &sInputFormat.FormatId(),  
    sInputFormat.WaveFormatExPtr(),  
    SPFEI_ALL_EVENTS);  
  hr   =   cpRecognizer.CoCreateInstance(CLSID_SpInprocRecognizer);  
          hr   =   cpRecognizer->SetInput(cpInputStream,   TRUE);  
          hr   =   cpRecognizer->CreateRecoContext(&cpRecoContext);  
          hr   =   cpRecoContext->CreateGrammar(NULL,   &cpRecoGrammar);  
          hr   =   cpRecoGrammar->LoadDictation(NULL,SPLO_STATIC);  
          hr   =   cpRecoContext->SetInterest(SPFEI(SPEI_RECOGNITION)   |    
    SPFEI(SPEI_END_SR_STREAM),   SPFEI(SPEI_RECOGNITION)   |    
    SPFEI(SPEI_END_SR_STREAM));  
          hr   =   cpRecoContext->SetNotifyWin32Event();  
          hr   =   cpRecoGrammar->SetDictationState(SPRS_ACTIVE);  
          BOOL   fEndStreamReached   =   FALSE;  
  hr   =   cpRecoGrammar->SetDictationState(SPRS_INACTIVE);  
  hr   =   cpRecoGrammar->UnloadDictation();  
  hr   =   cpInputStream->Close();  
    cpRecognizer.Release();  
   
  }     //   end   doit() 问题点数:20、回复次数:1Top

1 楼llmsn("若虚"即"虚怀若谷"!!!)回复于 2005-04-28 16:33:51 得分 20

你不用的时候就适入它呗.Top

相关问题

  • 程序会自动释放内存吗?
  • 我程序释放不了内存,请大家帮帮忙!
  • 程序退出时,内存释放问题
  • 程序中使用内存的释放问题????????
  • 怎样释放mdi主应用程序的内存??
  • 请问.net程序怎样释放内存空间
  • JAVA应用程序的内存释放问题????????
  • 如何释放程序吃掉的内存?
  • 释放内存
  • 内存释放

关键词

  • hr
  • cpinputstream
  • cprecognizer
  • cprecocontext
  • cprecogrammar
  • filecontenttmp
  • pwwavefile
  • sinputformat
  • ccomptr
  • doit

得分解答快速导航

  • 帖主:czcty
  • llmsn

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo