Chinaunix

标题: VC [C4700] local variable 's' used without having been initialized [打印本页]

作者: jihuaneva    时间: 2006-12-29 14:36
标题: VC [C4700] local variable 's' used without having been initialized
原始标题: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 编辑 ]
作者: yurl    时间: 2006-12-29 14:45
标题: rp
你光定义个指针, 然后就使用, 当然死掉了
作者: jihuaneva    时间: 2006-12-29 14:47
谢谢楼上的朋友
那么应该如何进行修改一下呢?
可以说一下吗?
作者: yurl    时间: 2006-12-29 14:49
先分配内存空间贝
作者: jihuaneva    时间: 2006-12-29 14:50
怎么分配呢?
作者: yurl    时间: 2006-12-29 14:50
STACK *s = new STACK;
作者: jihuaneva    时间: 2006-12-29 14:52
好的 我试试一下
作者: jihuaneva    时间: 2006-12-29 14:59
不知道怎么说谢谢的好````
这个问题弄了半天没搞定
现在就一句
STACK *s = new STACK;

非常感谢你``
我一定以后加倍努力学习VC
谢谢了!
作者: 040240216    时间: 2006-12-29 15:02
local variable 's' used without having been initialized
作者: langue    时间: 2006-12-29 16:00
local variable 's' used without having been initialized

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

我编辑一下楼主的标题,方便来者查找答案




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2