小编das*_*ght的帖子

Cppcheck 可能的空指针取消引用:

我只是使用 cppcheck 代码工作正常只是 cppcheck 给出了这个错误。

void WorkerThread(WorkBuffer* m_buffer)
{
    std::cout << "Thread : " << m_buffer->m_id << ".....Starting" << std::endl;

    if (NULL == m_buffer)
        std::cout << "Thread : " << m_buffer->m_id << "......work buffer is null" << std::endl;


    while(!shut_down_flag)
    {
        int k = 0;
        //Sleep(1);
        SleepSystemUsec(100000);
        std::cout << "Thread : " << m_buffer->m_id << "....in while loop" << std::endl;
    } // of while(!shut_down_flag)

    std::cout << "Thread : " << m_buffer->m_id << ".....Request from main thread so ending working thread ...." …
Run Code Online (Sandbox Code Playgroud)

c++ cppcheck

-6
推荐指数
1
解决办法
4488
查看次数

为什么会遇到无限循环?

为什么这个结果会进入无限循环?

进入后for循环,我印刷的值iv.size()-2与它们0-1分别.因此,循环条件必须是false.那么,这个程序for首先如何进入循环?

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v {1};
    std::cout << "Size:: " << v.size();
    for (int i=0 ; i <= (v.size()-2) ; i++) {
        std::cout << "Hello";
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

-6
推荐指数
1
解决办法
85
查看次数

为什么以下循环执行

std::vector<int> tmp = ...
for(int i = 0; i <= tmp.size() - 3; i+=2){
    std::cout << "i: " << i << " , tmp.size(): " << tmp.size() << std::endl;
    if(tmp[i] == tmp[i+1]){
        final.push_back(tmp[i] * 2);
    }else{
        final.push_back(tmp[i]);
        final.push_back(tmp[i + 1]);
    }   
    std::cout << "\ntmp.size() at the end of loop: " << tmp.size() << "\n";         
}
Run Code Online (Sandbox Code Playgroud)

我有以下输出:

在此输入图像描述

为什么循环执行i明显要大得多tmp.size()

c++

-6
推荐指数
1
解决办法
106
查看次数

"Ref"和"Out"参数的内存分配有什么区别?

在C#refout关键字中.

它如何影响内存管理?内存管理refout关键字有什么区别吗?

c# ref out

-6
推荐指数
1
解决办法
342
查看次数

标签 统计

c++ ×3

c# ×1

cppcheck ×1

out ×1

ref ×1