C 重置连续地址空间

来源:互联网 发布:ubuntu install g 编辑:程序博客网 时间:2024/04/30 21:15
#include <windows.h>#define CANVAS_BLOCK_HEIGHT    10#define CANVAS_BLOCK_WIDTH     10#define CANVAS_PIPELINE_EXPAND 60typedef unsigned short pixel;struct pipe_node{void *object;int x;int y;};struct canvas_block{pixel *ptr;struct pipe_node *pipeline;int total_object;int total_last;int capability_pipeline;};void drawfunc_clear(pixel *ptr,int pitch,void *object,int x,int y);void canvas_block_resize(struct canvas_block *blk);void main(){pixel used=5;pixel *ptr=&used;drawfunc_clear(ptr,10,0,0,0);canvas_block *ptrBlock=(canvas_block*)malloc(sizeof(pipe_node));canvas_block_resize(ptrBlock);}static void drawfunc_clear(pixel *ptr,int pitch,void *object,int x,int y){int i;for (i=0;i<CANVAS_BLOCK_HEIGHT;i++){size_t temp=CANVAS_BLOCK_WIDTH*sizeof(pixel);memset(ptr,0,temp);ptr=(pixel*)((char*)ptr+pitch);}}static void canvas_block_resize(struct canvas_block *blk){const int size=blk->capability_pipeline+CANVAS_PIPELINE_EXPAND;const int newsize=size*sizeof(struct pipe_node);blk->capability_pipeline=size;blk->pipeline=(struct pipe_node*)realloc(blk->pipeline,newsize);}


                                             
0 0
原创粉丝点击