2
const int size = 50000;
char pool[size];

int freeMemory(void)
{
int freemem = 0;
for(int i = 0; i < size; i++)
{
    if(pool[i] == NULL)
    {
        freemem++;
    }
    i++;
}

return freemem;
}

freeMemory() を呼び出すと、返されるサイズは常に最初に宣言されたサイズの半分になります。ここでは特に25000プール自体で何も初期化していなくても。どうしてこれなの?最初に何かを初期化する必要がありますか?

void initialize(void)
{
//Don't quite understand if I need to initialize something here? 
}

また、 new 演算子も使用しないようにしています。その理由は、プール内のメモリを手動で管理しようとしているからです。

4

1 に答える 1