原始标题:VC [C4700] 错误,无法解决
#include<stdio.h>
#define MAX 100
#define NULL 0
struct stack /*定义栈存储结构*/
{int data_stack[MAX];
int top;
};
typedef struct stack STACK;
STACK *createstack(void) /*创建一个栈*/
{STACK *s;
int len,i,num;
printf("\n\n请输入单链表的长度:");
scanf("%d",&len);
s->top=len;
printf("\n↓请输入顺序表的数据↓\n");
for(i=1;i<=s->top;i++)
{printf("输入第%d个数据:",i);
scanf("%d",&num);
s->data_stack=num;
}
return(s);
}
void outstack(STACK *s) /*输出一个栈*/
{
int i;
if(s->top==0)
printf("\n该栈为空,没有数据!\n");
printf("\n栈的数据:");
for(i=1;i<=s->top;i++)
printf("%d ",s->data_stack);
printf("\n");
}
void push(STACK *s,int x) /*将x压入栈s中*/
{if(s->top==MAX-1)
printf("该栈已满,无法插入数据");
else
s->data_stack[++s->top]=x;
}
void pop(STACK *s) /*出栈操作*/
{ int x;
if(s->top==NULL)
printf("\n该栈为空,没有数据!\n");
else
x=s->data_stack[s->top--];
printf("出栈的数据为:");
printf("%d\n",x);
}
void main() /*实验五:栈的基本运算*/
{STACK *s1;
int num;
s1=createstack();
outstack(s1);
printf("\n输入进栈数据:");
scanf("%d",&num);
push(s1,num);
outstack(s1);
pop(s1);
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:27
你光定义个指针, 然后就使用, 当然死掉了
jihuaneva 回复于:2006-12-29 14:47:14
谢谢楼上的朋友
那么应该如何进行修改一下呢?
可以说一下吗?
yurl 回复于:2006-12-29 14:49:32
先分配内存空间贝
jihuaneva 回复于:2006-12-29 14:50:18
怎么分配呢?
yurl 回复于:2006-12-29 14:50:34
STACK *s = new STACK;
jihuaneva 回复于:2006-12-29 14:52:35
好的 我试试一下
jihuaneva 回复于:2006-12-29 14:59:54
不知道怎么说谢谢的好````
这个问题弄了半天没搞定
现在就一句
STACK *s = new STACK;
非常感谢你``
我一定以后加倍努力学习VC
谢谢了!
040240216 回复于:2006-12-29 15:02:04
local variable 's' used without having been initialized
langue 回复于:2006-12-29 16:00:36
local variable 's' used without having been initialized
's' 这个本地变量,没有初始化就用上了。
我编辑一下楼主的标题,方便来者查找答案 :)
|