首页上一页 1 下一页尾页 2 条记录 1/1页
代码出错
发表在C语言图书答疑
2020-06-18
《C语言项目开发实战入门》第2章 挑战2048 85页-86页
是否精华
是
否
版块置顶:
是
否
int *add(int item[]) { int i = 0; int j = 0; int tmp[4] = {0,0,0,0}; int tep[4] = {0,0,0,0}; for(i = 0; i < 4 ;i++) //记录一行或一例的数字 { if(item[i] ! = 0) { tep[j++] = item[i]; } } for(i = 0; i <4 i++) { if(tep(i) == tep[i+1]) { tep[i] += 2; tep[i + 1] = 0; score = score+tep[i]; } } j = 0; for(i = 0; i < 4 ;i++) //记录一行或一例的数字 { if(item[i] ! = 0) { tmp[j++] = tep[i]; } } return (int *)(&tmp); }
这个的返回值为数组 这个为局部变量 它的生命周期当然也随着它所在的函数一起 随着add函数调用的结束,其中的各种局部变量也将被系统收回,理所当然的数组也将被收回 内容也就没有了
无论你以后的程序如何接受这个数据不一定为原来的值 这是否是构成了野指针
于2020-06-18 19:15:58编辑