Tech talks: placement new
So another post under sign of programming. This time: placement new. So lets's look on this part of code : ... if (techData.texturesCount[idx] > 0) { tech->m_textures = new(memoryPtr) STextureSlot[tech->m_texturesCapacity]; memoryPtr += sizeof(STextureSlot) * tech->m_texturesCapacity; } else { tech->m_textures = NULL; } ... It's a part of White Rabbit Engine materials creator. It's purpose is simple : allocate memory for material + techniques + textures slots. And use placement new to create objects. Everything so all materials data was put in continuous memory. Of course it's nice but there is one problem : this part of code is wrong. Everything look nice but placement new for arrays add additional data about array before objects. So new(memoryPtr) STextureSlot[tech->m_texturesCapacity] use more memory than : sizeof(STextureSlot) * tech->m_texturesCapacity; For me this m...