经典指数          
原因
1832
浏览数
0
收藏数
 

找出以下程序中的bug: struct Record{ int a; int b; }; int create(struct Record *p, int num) { p = new struct Record[num]; if (!p) return -1; else return 0; } int Test() { struct Record *p = NULL; int i; int num; printf("0x%08x\n", p); scanf("Input record num:%d", &num); if (create(p, num) < 0) return -1; printf("0x%08x\n", p); for (i = 0; i < num; i++) { p[i].a = 0; p[i].b = 0; } return 0; } int main(void) { Test(); getchar(); return 0; }

     举报   纠错  
 
切换
1 个答案

int create(struct Record **p, int num)

{

    *p = newstruct Record[num];

    if(!*p)

        return-1;

    else

        return0;

}

if(create(&p, num) < 0)

 
切换
撰写答案