uglmemset和for循环的区别

从现象来说,产生数据异常最有可能的情况有两种。
1. 你程序中的数据访问方式不合法(CPU无法发起给定位宽向给定地址的读/写传输)。
2. 访问地址不合法(地址不存在或者是MMU表中无法寻找到,如果有MMU的话)。

但可能性大的,应该是第一种,通常由由对齐问题引起,在大端模式的CPU下容易出线此错误,而同样的程序在小端模式的CPU比如x86下则不会出线此错误。因为大端模式的CPU有自然对齐的要求,如果向一个非4的倍数的地址发起32位宽的数据读写传输,则会产生数据错误。如果是这个原因引起,要查的话,就看程序中是否存在强制类型转换和指针强制类型转换,特别是指针。

你可能感兴趣的:(uglmemset和for循环的区别)