免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 14065 | 回复: 9

VC [C4700] local variable 's' used without having been initialized [复制链接]

论坛徽章:
0
发表于 2006-12-29 14:36 |显示全部楼层
原始标题:VC [C4700] 错误,无法解决


  1. #include<stdio.h>
  2. #define MAX 100
  3. #define NULL 0
  4. struct stack                     /*定义栈存储结构*/
  5. {int data_stack[MAX];
  6. int top;
  7. };
  8. typedef struct stack STACK;
  9. STACK *createstack(void)                          /*创建一个栈*/
  10. {STACK *s;
  11. int len,i,num;
  12. printf("\n\n请输入单链表的长度:");
  13. scanf("%d",&len);
  14. s->top=len;
  15. printf("\n↓请输入顺序表的数据↓\n");
  16. for(i=1;i<=s->top;i++)
  17. {printf("输入第%d个数据:",i);
  18.   scanf("%d",&num);
  19.   s->data_stack[i]=num;
  20. }
  21. return(s);
  22. }

  23. void outstack(STACK *s)                           /*输出一个栈*/
  24. {
  25. int i;
  26. if(s->top==0)
  27. printf("\n该栈为空,没有数据!\n");
  28. printf("\n栈的数据:");
  29. for(i=1;i<=s->top;i++)
  30. printf("%d  ",s->data_stack[i]);
  31. printf("\n");
  32. }


  33. void push(STACK *s,int x)              /*将x压入栈s中*/
  34. {if(s->top==MAX-1)
  35. printf("该栈已满,无法插入数据");
  36. else
  37. s->data_stack[++s->top]=x;
  38. }



  39. void pop(STACK *s)                        /*出栈操作*/
  40. { int x;
  41. if(s->top==NULL)
  42. printf("\n该栈为空,没有数据!\n");
  43. else
  44. x=s->data_stack[s->top--];
  45. printf("出栈的数据为:");
  46. printf("%d\n",x);
  47. }

  48. void main()                   /*实验五:栈的基本运算*/
  49. {STACK *s1;
  50. int num;
  51. s1=createstack();
  52. outstack(s1);
  53. printf("\n输入进栈数据:");
  54. scanf("%d",&num);
  55. push(s1,num);
  56. outstack(s1);
  57. pop(s1);
  58. outstack(s1);}
复制代码



不知道为什么 提示warning C4700: local variable 's' used without having been initialized
我已经定义了s可是为什么还是运行失败,不过在TC环境下可以成功运行,但是在VC下面就有这个警告
不知道为什么,还请哪一位高人。帮忙看看,小弟在此谢过


[ 本帖最后由 langue 于 2006-12-29 16:02 编辑 ]

论坛徽章:
0
发表于 2006-12-29 14:45 |显示全部楼层

rp

你光定义个指针, 然后就使用, 当然死掉了

论坛徽章:
0
发表于 2006-12-29 14:47 |显示全部楼层
谢谢楼上的朋友
那么应该如何进行修改一下呢?
可以说一下吗?

论坛徽章:
0
发表于 2006-12-29 14:49 |显示全部楼层
先分配内存空间贝

论坛徽章:
0
发表于 2006-12-29 14:50 |显示全部楼层
怎么分配呢?

论坛徽章:
0
发表于 2006-12-29 14:50 |显示全部楼层
STACK *s = new STACK;

论坛徽章:
0
发表于 2006-12-29 14:52 |显示全部楼层
好的 我试试一下

论坛徽章:
0
发表于 2006-12-29 14:59 |显示全部楼层
不知道怎么说谢谢的好````
这个问题弄了半天没搞定
现在就一句
STACK *s = new STACK;

非常感谢你``
我一定以后加倍努力学习VC
谢谢了!

论坛徽章:
0
发表于 2006-12-29 15:02 |显示全部楼层
local variable 's' used without having been initialized

论坛徽章:
0
发表于 2006-12-29 16:00 |显示全部楼层
local variable 's' used without having been initialized

's' 这个本地变量,没有初始化就用上了。

我编辑一下楼主的标题,方便来者查找答案
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP