Tag: vmalloc

释放(vfree-ing)指向易失性数据的指针

volatile似乎是每个人永无止境的问题。 我以为我知道一切,但后来我遇到了这个: 所以,我在线程之间共享了一块内存,我将其定义如下: volatile type *name; 如果它让你感觉更好,你可以想象type只是一个int 。 这意味着我有一些指针(不易变)到一些易失的数据。 因此,例如在优化方面,编译器可以缓存name的值而不是name[0] 。 我对吗? 所以,现在我正在使用这个指针(它在Linux内核模块中),它告诉我当我传递volatile type *时, vfree需要const void * volatile type * 。 我理解将volatile type *作为type *传递是多么危险,因为在该函数中, name[i]的值可以被高速缓存(作为优化的结果),这是不可取的。 我不明白为什么,但是, vfree希望我将指针发送到非易失性数据。 那里有什么我想念的吗? 或者只是那些写vfree而不考虑这种情况的人? 我假设我只是将我的指针投射到void *不会造成任何伤害,是吗?