C++太极门小弟子 发表于 2021-12-23 20:53:03

结构体分配空间问题

本帖最后由 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:}

jhq999 发表于 2021-12-24 11:04:17

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;
}

C++太极门小弟子 发表于 2021-12-24 18:04:42

懂了,要先对结构体指针整体分配空间才能对成员分配空间{:10_262:}
页: [1]
查看完整版本: 结构体分配空间问题