我正在尝试用C创建一个检查溢出的简单程序。当声明指针时,我需要保留一些元数据,例如指针的地址,它的大小(它的边界)等......这是我可以用预处理器和宏做的事情。问题是我需要在指针递增或解除引用时调用函数以检查它是否超出范围,这是一个小例子:
//some code
pointer_name++;
//more code
需要翻译成
//some code
pointer++;
checkBounds(pointer_name, starting_address, pointer_size);
//more code
换句话说,我需要在编译时插入一个检查,以便它可以防止在运行时溢出。我是C的中间人,但对编译器没有多少经验。最好的方法是什么?如果有人可以指导我某个方向,我会非常感激。