小编Xav*_*Xav的帖子

C++,在for循环中分配空间,可能的内存泄漏验证

我只是好奇这个代码是否会造成多个内存泄漏,或者它是否会被正确清理.

Node *newNode;

for (int i = 0; i < 10; i++)
{
    newNode = new Node();
}

delete newNode;
Run Code Online (Sandbox Code Playgroud)

显然,代码没有做任何事情,但它确实帮助我解释了我的场景.我分配内存10次,当我删除指针留下9个孤儿?或者我是否重复使用相同的空间并正确删除孤儿?提前致谢!

c++ memory pointers orphan

4
推荐指数
2
解决办法
4862
查看次数

MIDI 序列,注释命令并不总是跟随注释关闭

向编码员们致以问候和问候,

我正在尝试解析 MIDI 序列并从中获取音符持续时间。当我收到音符命令时,我会向前查找以查找同一键的音符关闭命令或速度为 0 的音符命令。这是有问题的代码块(可能不需要)。

for (Track track : sequence.getTracks()) 
{
    for (int i = 0; i < track.size(); i++) 
    {
        MidiEvent event = track.get(i);
        MidiMessage message = event.getMessage();

        if (message instanceof ShortMessage) 
        {
            ShortMessage sm = (ShortMessage) message;
            long timeStamp = event.getTick();
            String temp = "0x" + Integer.toHexString(sm.getCommand());

            if (temp.contains(Definitions.NOTE_ON))
            {
                // look ahead for note off and find duration

                for (int j = i; j < track.size(); j++) 
                {
                    MidiEvent event2 = track.get(j);
                    MidiMessage message2 = event2.getMessage(); …
Run Code Online (Sandbox Code Playgroud)

java midi sequence

2
推荐指数
1
解决办法
1033
查看次数

永远不会结束嵌套循环!但为什么?

嘿,我仍然是c ++的新手.我将进入嵌套的for循环,似乎循环变量永远不会在循环结束时递增.这是一些代码.

int main( int argc, char** argv )
{
    int i,j, m, k;
    k = 2000;
    l = 1000;

    for(i=0; i<k; i++)
    {
        for(j=0; j<l; j++)
        {
            printf("Processing bob %d \n", i * j);
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

控制台输出是:

加工bob 0

加工bob 0

加工bob 0

无限期..

我在这做错了什么?

c++ loops

-2
推荐指数
1
解决办法
142
查看次数

标签 统计

c++ ×2

java ×1

loops ×1

memory ×1

midi ×1

orphan ×1

pointers ×1

sequence ×1