在写小功能的时候,使用memcpy API的时候,出现了在循环中,只写入了第一行的数据 其他都没有写入
的BUG。如:
循环里 没有写入,但像注释掉的那样学就能写入。这是为什么呢
一开始,以为是对 memcpy 用法理解错误。就去查了下,API说明。
void *memcpy(void *str1, const void *str2, size_t n)
第一个参数是 需要传的是一个指针。没错呀。这让我一筹莫展。
往往 啥都没问题的 时候 错误可能就出现在 最简单的地方。直到我想到了要写入的文件
没错,我这个将指针数据写入文件的大小申请的 比指针大小小。导致了memcpy学不进去。。
提一句 如果运行程序时 出现以下提示
很大几率是指针的问题,可能是 free 已经 偏移的指针,也可能是越界了。