问题描述
- 各位大神看看哪里错了
-
#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;
}
想往栈里存入一个字符串,老是报错,不知道哪里错了
解决方案
main函数中的S是指针变量,还没有动态分配内存,怎么能引用成员base那?
解决方案二:
加上
S = (SqStack *)malloc(sizeof(SqStack));
S->base=(SElemType *)malloc(10*sizeof(SElemType));
解决方案三:
懂了,谢谢两位热心解答
解决方案四:
你是说,声明一个结构体让S指向它?
时间: 2025-01-19 04:02:46