c - 在 C 编程中将 .h 文件实现到 main() 中
问题描述
我是 C 编程的新手,我正在尝试使用我在 main() 中创建的 .h 的实现。到目前为止,我有一个 .h 文件,一个实现 .h 文件的 .c 文件,并且我正在处理另一个具有主要功能的 .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 主文件。我几乎可以肯定我搞砸的原因是因为我以错误的方式使用了 Stack 结构。我认为我搞砸的具体路线是
//prog1_3.c
STACK *myStack;
然后我继续使用 myStack 作为 push 和 pop 参数中的变量,例如 Pop(myStack) 或 Push(myStack,value)。这些确切的行产生了一个分段错误核心转储。任何关于指导我解决我做错的事情的意见将不胜感激。谢谢你。
解决方案
STACK *myStack;
-->
STACK *myStack = MakeStack(42);
推荐阅读
- javascript - 如何避免“跳跃”的 UI 更新?
- c++ - 类型推导失败:派生模板的 shared_ptr 到基模板作为函数参数
- angularjs - AngularJS 关于将工厂转换为提供者的建议?
- python - 制作元组的笛卡尔不起作用
- python - 作为 PC 算法的一部分,在 python 中测试条件独立性
- javascript - 如何在从 Ajax 执行的 PHP 文件中执行 JavaScript
- java - 无法通过 JAVA 运行 XSLT 并且在输出中观察到 Empty 结果
- python - 读取文件并将文件中的数据提供给函数
- ios - iOS 12 Swift 将 TrueDepth 数据保存到视频
- javascript - 为什么“clearInterval”在条件“mouseover”事件监听器中不起作用?