none
const wchar_t *p = maintextblock->Text->Data(),*p 是否需要释放,如何释放? RRS feed

  • 问题

  • 如题, Text是 String^ 类型, Text->Data()返回的是 const wchar_t *, 我认为这个指针指向空间是从函数内部申请的,所以觉得可能会造成内存泄露。

    整体代码:
    C/C++ code
    
        auto randdelegate = [this](ThreadPoolTimer^ item){
            auto uidelegate = [this](){
                String^ buf = ref new String();
                if (maintextblock->Text->Length() > 150 * 2 * 58)
                {
                    const wchar_t * p = maintextblock->Text->Data();
                    maintextblock->Text = ref new String(&(p[150 * 2]));
                }
                for (int i = 0; i < 150; i++)
                {
                    if (rand() % 2)
                    {
                        buf += "1";
                    }else
                    {
                        buf += "0";
                    }
                }
                maintextblock->Text += buf;
            };
            Dispatcher->RunAsync(Windows::UI::Core::CoreDispatcherPriority::Normal,ref new Windows::UI::Core::DispatchedHandler(uidelegate));
        };
        TimeSpan timesp;
        timesp.Duration = 5 * 100000;
        ThreadPoolTimer::CreatePeriodicTimer(ref new TimerElapsedHandler(randdelegate),timesp);
    2012年10月10日 0:51

答案