2 iseuwei ISEUWEI 于 2016.03.18 00:28 提问

各位大神看看哪里错了

#include
#include
#include
typedef struct{
char *str;
}SElemType;
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
int main(){
SqStack *S;char *sch="Hello";
S->base=(SElemType *)malloc(10*sizeof(SElemType));
if(!S->base) return 0;
S->top=S->base;
S->stacksize=10;
S->top->str=(char *)malloc(10*sizeof(char));
strcpy(S->top->str,sch);
printf("%s",S->top->str);
return 0;
}
想往栈里存入一个字符串,老是报错,不知道哪里错了

4个回答

bealing
bealing   Rxr 2016.03.18 00:41
已采纳

main函数中的S是指针变量,还没有动态分配内存,怎么能引用成员base那?

ISEUWEI
ISEUWEI 懂了,谢谢两位热心解答
一年多之前 回复
ISEUWEI
ISEUWEI 声明一个同类型变量,让S指向它?
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.03.18 00:51

加上

 S = (SqStack *)malloc(sizeof(SqStack));
 S->base=(SElemType *)malloc(10*sizeof(SElemType));
ISEUWEI
ISEUWEI 谢谢两位热心解答
一年多之前 回复
ISEUWEI
ISEUWEI   2016.03.18 00:58

懂了,谢谢两位热心解答

ISEUWEI
ISEUWEI   2016.03.18 00:44

你是说,声明一个结构体让S指向它?

bealing
bealing 用malloc给S分配内存
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!