スタックが何をするのかを完全に理解しています(後入れ先出し)。それは私を混乱させるスタックのほんの一部です。
typedef struct dynArrStruct
{
char *location; //element
int length; //max size
int currSize; //top
}dynArr;
dynArr a; //declared in main
//sorry this is an assignment and I try to refrain from posting my full code
//on here b/c of potential cheaters
このコードをスタックとして使用します。
基本的に、私のプログラムはバランスの取れた文字を見つけることになっています:'{'、'('、'<'、'['とそれらの終了カウンター部分。
一言で言えば、オープニングブレースを見つけるたびに、それをスタックに押し込みます。閉じ中括弧が見つかるまでスタックに押し込み続け、閉じ中括弧が見つかったらすぐにスタックをポップする必要があります。
私が混乱しているのは、変数char*の場所です。
私の文字列が「()」だとしましょう
GDBの場合:
'('を読み込んだ場合は、スタックにプッシュします。')'を読み込んだ場合は、ポップします。
私がするとき:p a-> locationそれは「()」を出力します
スタックをポップするたびに、a-> locationの値から「()」を削除することになっているのでしょうか、それともa-> locationに関係のないスタックをポップするのでしょうか?
つまり、ポップされた後に「」を出力する必要がありますか?
この質問が意味をなさない場合は、事前にお詫び申し上げます