memcpy重写不起作用

时间:2018-05-29 10:38:02

标签: c memory-management memcpy

你们有没有人可以解释为什么这个memcpy函数不起作用?

function x = distance(T, route)
load(route)
n=10e6;
x = mean(distance_km);
i = 1;
maxiter=100;
tol= 5e-4;
condition=inf
fx = @(x) time_to_destination(x, route,n); 
dfx = @(x) 1./velocity(x, route);

while  condition > tol && i <= maxiter
    i = i + 1 ;
    Guess2 = x - ((fx(x) - T)/(dfx(x)))
    condition = abs(Guess2 - x)
    x = Guess2;

end
end

1 个答案:

答案 0 :(得分:1)

该代码甚至不应该编译;它肯定不符合C。

未定义void指针的算术 - 您应该做的是创建char指针,您可以从中复制。并记住返回目标缓冲区的开头,而不是结尾:

#include <stdlib.h>             /* for size_t */

void *ft_memcpy(void *restrict dst, const void *restrict src, size_t n)
{
    char *d = dst;
    const char *s = src;

    while (n--)
        *d++ = *s++;

    return dst;
}
顺便说一句,请注意,一个好的编译器有权识别这个复制循环并将其优化为标准库memcpy()的调用。