作者 主題: 关于malloc的用法  (閱讀 3362 次)

0 會員 與 1 訪客 正在閱讀本文。

zhangzhangzhang逸

  • 懷疑的國中生
  • **
  • 文章數: 46
  • 性別: 女
    • 檢視個人資料
关于malloc的用法
« 於: 2013-06-15 21:08 »
s->base=(int *)malloc(STACK_SIZE*sizeof(int));

 

注释:typedef struct node {

                     int *base;

                     int *top;

                     int stack_size;

}sqstack;

sqstack *s;

#define STACK_SIZE  20

我的程序调试到这一句就跳出去了

在程序中我这句的后面是

         if(!s->base)

                        exit(EXIT_FAILURE);

我开始怀疑是没有分配起,但是调试时就没有执行if这条语句

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: 关于malloc的用法
« 回覆 #1 於: 2013-06-16 09:18 »
s->base=(int *)malloc(STACK_SIZE*sizeof(int));

注释:typedef struct node {
                     int *base;
                     int *top;
                     int stack_size;
}sqstack;

sqstack *s;

#define STACK_SIZE  20

我的程序调试到这一句就跳出去了

在程序中我这句的后面是

         if(!s->base)

                        exit(EXIT_FAILURE);

我开始怀疑是没有分配起,但是调试时就没有执行if这条语句

原來的程式碼就是上面那樣的嗎? ::)
在 define STACK_SIZE 之前就使用 STACK_SIZE ?!
要不要把原來的程式碼貼出來看看呀?

zelda

  • 憂鬱的高中生
  • ***
  • 文章數: 92
    • 檢視個人資料
Re: 关于malloc的用法
« 回覆 #2 於: 2013-07-14 21:46 »
你的s有配置記憶體嗎?