C++ boost::shared_阵列上的memset会导致任何问题吗?

C++ boost::shared_阵列上的memset会导致任何问题吗?,c++,boost,C++,Boost,我有一个boost::shared_数组缓冲区,偶尔使用memset函数将其置为空。我怀疑这个缓冲区不时被破坏,可能是memset造成的 编辑:要澄清问题,请参见以下代码: boost::shared_array<char> m_buf; m_buf( new char[(unsigned int)m_bufSize] ) memset( m_buf.get(), 0xCD, (size_t)m_bufSize ); 你可能应该在缓冲区归零的地方发布相关的代码片段。正确使用

我有一个boost::shared_数组缓冲区,偶尔使用memset函数将其置为空。我怀疑这个缓冲区不时被破坏,可能是memset造成的

编辑:要澄清问题,请参见以下代码:

boost::shared_array<char>   m_buf;  
m_buf( new char[(unsigned int)m_bufSize] )
memset( m_buf.get(), 0xCD, (size_t)m_bufSize );

你可能应该在缓冲区归零的地方发布相关的代码片段。正确使用memset不会有任何问题,它只是一个内存填充。只需确保您将其与原始缓冲区一起使用,并且大小正确。您是在共享_数组本身上调用memset,还是在它拥有的数组上调用memset?数组中的元素类型是什么?代码未满,第二行没有意义。但除此之外,我认为你的方法是正确的,所以问题可能在其他方面。你可能应该使用Valgrind来找出内存损坏的确切位置。从您发布的代码来看,它似乎很好,因此可能在其他地方。