Я новичок в программировании на C и пытаюсь использовать реализацию .h, которую я создал в main ().Пока у меня есть файл .h, файл .c, который реализует файл .h, и я работаю над другим файлом .c, который имеет основную функцию.Я запустил файл реализации .h и .c, и он работает нормально.Я считаю, что часть, о которой я пишу, - это использование реализации в основном файле.Я получаю ошибку: сбой ядра сегментирования.Это то, что я пытаюсь сделать до сих пор
//.h file
typedef struct stack{
int* data;
int size;
int capacity;
} STACK;
STACK* MakeStack(int initialCapacity);
//Other Push,Pop,Grow Functions
Мой второй файл (prog1_2.c) является реализацией этого заголовочного файла, который выполняет действия, подобные предполагаемым, например, мой метод MakeStack:
//prog1_2.c
STACK* MakeStack(int initialCapacity){
struct stack *newStack = (struct stack*) malloc( sizeof(struct stack));
newStack->size = 0;
newStack->capacity = initialCapacity;
newStack->data = (int*)malloc(sizeof(int)*initialCapacity);
return newStack;
}
Наконец, часть, с которой у меня возникают проблемы, это основной файл prog1_3.c.Я почти уверен, что причина, по которой я путаюсь, состоит в том, что я неправильно использую структуру стека.Конкретная строка, о которой я думаю, что я испорчена, это
//prog1_3.c
STACK *myStack;
, а затем я использую myStack в качестве переменной в параметрах push и pop, таких как, например, Pop (myStack) или Push (myStack,значение).Эти точные строки дают сбой ядра сегментации.Буду очень признателен за любую информацию, которая поможет мне понять, что я делаю неправильно.Спасибо.