C语言小函数
来源:互联网 发布:seo区综合查询 编辑:程序博客网 时间:2024/06/10 12:23
#include <stdio.h>#include <stdlib.h>#include <assert.h>typedef struct Intstack{ int *elems; int loglength; int alloclength;} Intstack;void IntstackNew(Intstack *s){ s->loglength=0; s->alloclength=4; s->elems=malloc(4*sizeof(int)); assert(s->elems!=NULL);}void IntstackFree(Intstack *s){ free(s->elems);}void IntstackPush(Intstack *s, int value){ if(s->alloclength==s->loglength) { s->alloclength *= 2; s->elems=realloc(s->elems, s->alloclength*sizeof(int)); assert(s->elems!=NULL); } s->elems[s->loglength] = value; s->loglength++;}int IntstackPop(Intstack *s){ assert(s->loglength>0); s->loglength--; return s->elems[s->loglength];}int main(){ Intstack s; IntstackNew(&s); IntstackPush(&s, 4); IntstackPush(&s, 5); printf("%d\n", IntstackPop(&s)); printf("%d\n", IntstackPop(&s)); IntstackFree(&s); printf("Hello world!\n"); return 0;}