码迷,mamicode.com
首页 > 其他好文 > 详细

无法分配内存,异常退出

时间:2014-05-09 06:54:37      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:程序   动态   价值   空间   如何   

    当4GB的内存被使用的一干二净,我们该考虑这个垃圾的程序还有没有价值?

    当堆栈存放不下一个数组,我们是否该考虑我们是否放任我们的代码范围。

    当用户空间无法动态创建内存块,我们该考虑是什么占用了整个系统,而不是去考虑如何释放

已经使用的空间。在程序中无法创建内存块,而需要遍历所有的块是否可以释放,带来的代价是否

非常高昂?

    非常赞同iftop源码的方式,直接异常中断程序:

void *xmalloc(size_t n) {
    void *v;
    v = malloc(n);
    if (!v) abort();
    return v;
}

/* xcalloc:
 * As above. */
void *xcalloc(size_t n, size_t m) {
    void *v;
    v = calloc(n, m);
    if (!v) abort();
    return v;
}

/* xrealloc:
 * As above. */
void *xrealloc(void *w, size_t n) {
    void *v;
    v = realloc(w, n);
    if (n != 0 && !v) abort();
    return v;
}

/* xstrdup:
 * As above. */
char *xstrdup(const char *s) {
    char *t;
    t = strdup(s);
    if (!t) abort();
    return t;
}

/* xfree:
 * Free, ignoring a passed NULL value. */
void xfree(void *v) {
    if (v) free(v);
}

 

无法分配内存,异常退出,布布扣,bubuko.com

无法分配内存,异常退出

标签:程序   动态   价值   空间   如何   

原文地址:http://5228690.blog.51cto.com/5218690/1408636

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!