根据C11 N1570 standard draft:
7.24.2.2“memmove
函数”:
memmove
函数将n
字符从s2
指向的对象复制到s1
指向的对象。进行进行复制,就好像首先将n
所指向的对象中的s2
字符复制到n
字符的临时数组中一样,该数组不与s1
和s2
所指向的对象重叠,然后将临时数组中的n
字符复制到s1
指向的对象中
因此,如果我选择使用(file_size = 32K)移动大小为32K的缓冲区
memmove(io_Buffer, io_Buffer+17, file_size);
临时缓冲区的大小不是32K吗?
问题
程序可以自行分配动态内存吗?它会在那一行分配和释放内存吗?
最佳答案
我认为您错过了该句子中的“好像”。这意味着效果将与执行此操作相同,而不是实际上执行该操作。我从未见过实际使用临时数组的memmove
实现。
关于c - memmove是否将动态内存用于其临时数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55370165/