• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

使用指针时,如何防止越界

明有几时有 2019-03-30 浏览量:2329
C语言中,使用指针时,如何防止越界
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 在每个指针使用时,都进行是不是NULL的,并进行指针所指的地址范围的判断,否则,一有疏忽就可能 越界的
    • 发布于 2019-03-30
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 必须让指针指向一个有效的内存地址

     1 防止数组越界

     2 防止向一块内存中拷贝过多的内容

     3 防止使用空指针 

     4 防止改变 const 修改的指针 

     5 防止改变指向静态存储区的内容 

     6 防止两次释放一个指针

     7 防止使用野指针.
    • 发布于2019-03-30
    • 举报
    • 评论 0
    • 2
    • 0

  • 必须把指针指像内存的有效地址, 防止向一块内存中拷贝过多的内容导致超出内存范围, 防止使用空指针 , 防止改变 const 修改的指针 ,防止改变指向静态存储区的内容 ,防止两次释放一个指针,防止使用野指针
    • 发布于2019-03-30
    • 举报
    • 评论 0
    • 1
    • 0

  • 一般来说指针越界源于数组下标越界,这点是没办法通过编译报错、或者其他机制避免的,否则也不会出现java、python等一众去掉指针的语言。

    当然也可以用boost类库里面的一些智能指针,他们对越界操作有一定的限制。

    • 发布于2019-03-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 指针访问越界是一个需要经验和严格按照规范使用的情况。比如你对指针的访问都由一个标准化代理来处理,

    这个代理包括了指针所指数据的初始化信息,待访问信息,这样每次访问时先检查是否有效,再访问就不容易

    越界,但这会使得编程以及程序运行都要增加额外成本,所以在实践中真正这样采用的并不多。而是通过人工

    优化来进行优化。

    不过即使这样,在遇见异常(C本身没有很好的异常处理机制)时也容易造成越界。

    • 发布于2019-03-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 在对某个指针指向的位置进行赋值等操作之前,先读取一下这个指针指向的地址,看是否为空或者不合法的区域

    还有,像使用memcpy memset这类函数之前,最后那个size的参数最好与sizeof的结果先比较一下,防止操作的长度超过数组长度

    • 发布于2019-03-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 1、指针定义后一定要初始化,没有初始化为指向特定地址也要初始化为NULL;
    2、使用前需要校验指针是否为空;
    3、通过函数参数指针传值时,需要将参数定义为指针的指针;
    4、函数返回的指针不能是函数内的局部变量定义的指针;
    5、避免其他内存越界导致指针值出现异常。
    • 发布于2019-03-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 默认情况下一个程序只能使用它系统分配给它的内存,在这个范围里面,只要经过分配出来的内存应该都能操作。通过一些api打开其它程序的内存空间也能操作对应的内存,而如果不申请而直接使用系统肯定会报错并且禁止这个操作的
    • 发布于2019-04-01
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

使用指针时,如何防止越界