我正在为OS类工作,由于某种原因,即使我没有在代码中调用bcc并且它不可用,bcc也需要一个memcpy,所以我自己动手制作,但是它一直存在段错误 `
void memcpy( void* destination, void* source, size_t bytes )
{
size_t i = 0;
char* destination__ = ( char* ) destination;
char* source__ = ( char* ) source;
if( !( destination__ == source__ ) )
{
for( ; i < bytes; ++i )
destination__[ i ] = source__[ i ];
}
}
这似乎是段错误,我不知道为什么,当分配了内存时,它可以正常工作,但不适用于以下内容。
`
char* foo = "Hello";
char* bar = "Goodbye";
memcpy( bar, foo, 5 );
我觉得这是因为foo和bar可能是全局数据,并且与此有关,但是我不确定。除了我发现其他实现that是the相同/ similar在线elsewhere.之外,我会问这个问题,因为我使用Im使用的常规ol'gcc编译时会崩溃在没有诊断的OS Im建筑物外部进行验证。我对为什么会这样感到困惑。