简单的memcpy实现段错误

时间:2018-12-27 19:36:16

标签: c segmentation-fault memcpy

我正在为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可能是全局数据,并且与此有关,但是我不确定。除了我发现其他实现thatthe相同/ similar在线elsewhere.之外,我会问这个问题,因为我使用Im使用的常规ol'gcc编译时会崩溃在没有诊断的OS Im建筑物外部进行验证。我对为什么会这样感到困惑。

0 个答案:

没有答案