0
点赞
收藏
分享

微信扫一扫

C语言野指针


C语言在malloc() 分配到新内存后, 必须对新分配的内容进行初始化, 否则会出现野指针问题. 不然free()的时候会让你左右为难.

if(block_buffer == NULL) {

        block_buffer_size = settings.planner_buffer_blocks;

        //尝试尽量多的分配缓存空间.
        while((block_buffer = malloc((block_buffer_size + 1) * sizeof(plan_block_t))) == NULL) {
            if(block_buffer_size > 40)
                block_buffer_size -= block_buffer_size >= 250 ? 100 : 10;
            else
                break;
        }

        memset(block_buffer,   0,   block_buffer_size * sizeof(plan_block_t) ); //全部清0. 防止野指针 
    }


举报

相关推荐

0 条评论