私はそれに整数をプッシュできるスタックを作成しようとしています。これまでのところ私はこれを持っています:空のスタックを作成するには?
#include <stdio.h>
#define N 20
typedef struct {
int data[N]; // array of at most size N
// N should be a constant declared globally
int top;
} stack_t;
void push(stack_t *stack, int element);
int main(){
void push(stack_t *stack, int n) {
if (stack->top == N - 1) {
printf("Warning: Stack is full, You can't add'\n");
return;
} else {
stack->data[++stack->top] = n;
}
}
stack_t * e_stack; // Empty stack created
push(e_stack, 2);
}
ただし、このコードは実行時エラーです。私はそれがこの部分が間違っていると仮定します: stack_t * e_stack;
を作成//空のスタック(これはおそらく、空のスタックを作成していない)
しかし、私はあなたが正しい、それは間違って
入れ子関数とは何ですか? 'push()'関数は 'main()'の外で定義しなければなりません。あなたがCを学んでいるならば(そしておそらくCを学んだ後であってもおそらく使用していないかもしれないが)、弛緩モードのGCCだけが入れ子関数を許可します。 –