结构体分配空间问题
本帖最后由 C++太极门小弟子 于 2021-12-23 21:08 编辑主函数:
int main(){
char infix;
char suffix;
scanf("%s",infix);
printf("%s",infix);
SqStack *S;
S=NULL;
InitStack(S);
TransformSuffix(infix,suffix,S);
printf("%s",suffix);
SuffixCal(suffix,S);
getchar();
return 0;
}
问题出在InitStack(S)中:
typedef struct
{
char *data;
int top;
}SqStack;
//创建空顺序栈
intInitStack(SqStack *S){
S->data=(char *)malloc(MAXSIZE*sizeof(char));
S->top=-1;//定义栈空时top指针为-1
return OK;
}
在分配内存时报错Segmentation Fault搞不懂为什么{:10_266:} int main(){
char infix;
char suffix;
scanf("%s",infix);
printf("%s",infix);
SqStack S;///////////试试看,指针在32位程序里只占4个字节
S=NULL;
InitStack(&S);////////////
TransformSuffix(infix,suffix,&S);////////
printf("%s",suffix);
SuffixCal(suffix,&S);///////////
getchar();
return 0;
} 懂了,要先对结构体指针整体分配空间才能对成员分配空间{:10_262:}
页:
[1]