我是靠谱客的博主 自觉泥猴桃,最近开发中收集的这篇文章主要介绍指针使用不当引起的系统crash,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

看到一段程序:
分配一块内存,使用完释放内存空间时却没有从这块内存的首地址开始去free,
从而导致程序挂掉了。

测试案例:
int main(int argc, char* argv[])
{
    char* ps_mem = null;
   
    ps_mem = malloc(1024*sizeof(char));
    if (ps_mem)
    {
        ps_mem++;
    }
   
    if (ps_mem != null)
    {
        free(ps_mem);
        ps_mem = null;
    }
   
    return 0;
}

实际运行上面这段程序会挂掉。
正确的写法可以参考如下:
int main(int argc, char* argv[])
{
    char* ps_mem = null;
    char* ps_temp = null;
   
    ps_mem = malloc(1024*sizeof(char));
    ps_temp = ps_mem;
    if (ps_mem)
    {
        ps_temp++;
    }
   
    if (ps_mem != null)
    {
        free(ps_mem);
        ps_mem = null;
    }
   
    return 0;
}

注意:
1. 不要轻易移动指向已分配内存块的指针;
2. 这是编程的基本功。

最后

以上就是自觉泥猴桃为你收集整理的指针使用不当引起的系统crash的全部内容,希望文章能够帮你解决指针使用不当引起的系统crash所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部