使用memcpy时崩溃?

时间:2012-04-04 06:49:34

标签: c++ api

我正在尝试使用memcpy将文件从一个位置复制到其他位置。

每当我作为源提供的文件路径不存在时,我就会崩溃。

这是正确的行为,如果是,那么我该怎样才能防止崩溃。

2 个答案:

答案 0 :(得分:8)

memcpy的目的不是复制文件,而是将内存块从一个地方复制到另一个地方。根据平台的不同,我确信有更好的方法可以在目录之间复制文件。

答案 1 :(得分:2)

不,不,不!你在神圣记忆的名义下做什么? memcpy严格用于内存传输。例如,假设您在图形应用程序中有一堆顶点要提供给顶点缓冲区而不实际传递指针。这样,您可以复制表示顶点的整个字节数组,然后再复制它们 - 它们是底层API的问题。这是预期的用途。另外,请小心使用它。您指定要复制的字节数。确保它是准确的。在最低级别,没有类型的东西,如果你给它太多,它会肆虐 - 撕裂成“属于”其他变量的字节。如果你很幸运,这样的代码会杀死你的应用程序。如果你不是 - 它会继续工作。

对于文件读/写/复制,您必须参考标准的C / C ++文件输入/输出(或者由底层平台提供的一些更精细的方法,作为建议的答案之一)。网上有很多资源,所以我不会在这里重新发明轮子。希望它能让你更好地了解memcpy的用途。