Прикосновение к C после долгого времени. Я получаю ошибку времени выполнения в следующем коде. IDE [C-Free], который я использую, не показывает точную ошибку, но показывает «StackMin.exe» перестает работать.получение ошибки во время выполнения программы C
Здесь я использую две структуры, struct stack
для стека и struct AdvanedStack
предназначен для хранения двух стеков. В конце концов, я хочу, чтобы напечатать емкость обоих стеков, которые в Кодексе AdvancedStack
является:
#include<stdio.h>
struct stack {
int capacity;
int top;
int *array;
};
struct AdvancedStack{
struct stack* elementStack;
struct stack* minStack;
};
struct stack* createStack()
{
struct stack* myStack= (struct stack*)malloc(sizeof(struct stack));
myStack->capacity=5;
myStack->top=-1;
myStack->array= malloc(myStack->capacity * sizeof(int));
return myStack;
}
struct AdvancedStack* createAdvancedStack()
{
struct AdvancedStack *myStack = (struct AdvancedStack*)malloc(sizeof(struct AdvancedStack));
myStack->elementStack=createStack();
myStack->minStack=createStack();
}
int main()
{
struct AdvancedStack* advStack = createAdvancedStack();
printf("%d",advStack->elementStack->capacity);
printf("%d",advStack->minStack->capacity);
}
Работа с оператором 'return'. Спасибо за это. Но есть ли какая-то конкретная причина, почему бы не использовать результат «malloc» здесь. Разве это имеет значение? –
Кроме того, main должен вернуть значение или вызвать exit(). –
Прочтите ссылку, есть несколько причин. –