SqStack *S; // 僅聲明指標,未分配記憶體
S->base = (SElemType*)malloc(...); // 解引用野指標 → 未定義行為(通常崩潰)
SqStack *S = (SqStack*)malloc(sizeof(SqStack));
if (!S) return 0; // 配置失敗檢查
S->base = (SElemType*)malloc(10 * sizeof(SElemType));
if (!S->base) { free(S); return 0; }
S->top = S->base;
S->stacksize = 10;
// 後續為元素分配字串空間
S->top->str = (char*)malloc(10 * sizeof(char));
strcpy(S->top->str, "Hello");
free(S->top->str);
free(S->base);
free(S);
malloc 對應一個 free。gcc -fsanitize=address -g test.c。养成「先分配容器,再分配內容」的習慣,杜絕野指標崩潰。