gpt4 book ai didi

c - 用c构建堆栈的问题

转载 作者:行者123 更新时间:2023-11-30 20:26:53 25 4
gpt4 key购买 nike

我很喜欢编程,但我不明白为什么我的程序无法构建。我不知道问题到底出在哪里。对我来说,它似乎应该有效。这些主要是我在互联网上找到的示例。

有一些代码:主要:

    #include <stdlib.h>
#include <stdio.h>
#include "mod.h"

int main() {
push(*s, 15);
push(*s, 4);
push(*s, 18);
printf("%d",s->data[0]);
system("PAUSE");
return 0
}

Mod.c:

#define DEBUG 0
#include<stdio.h>
#include"mod.h"

//------------------------------------------------------------------------------
void push(struct Stack *s, int value)
{
if (s->size >= MAX_DATA - 1)
{
#if DEBUG
printf("no space.\n");
#endif
}
else
{
s->data[s->size] = value;
s->size++;
#if DEBUG
printf("added.\n");
#endif
}
}

//------------------------------------------------------------------------------
int pop(struct Stack *s)
{
if (s->size > 0)
{
#if DEBUG
printf("poped.\n");
#endif
return s->data[s->size] = 0;
} else {
s->data[s->size] = 0;
s->size--;
}

}

Mod.h:

#include <stdio.h>
#include <stdlib.h>
#ifndef MOD_H_INCLUDED
#define MOD_H_INCLUDED

#define MAX_DATA 30

typedef struct Stack {
int data[MAX_DATA];
int size;
} Stack;

// This function adds element to the end of the structure.
void push(struct Stack *s, int value);

// This function removes element from the end of the structure.
int pop(struct Stack *s);
//int pop(struct Stack *s)

#endif // MOD_H_INCLUDED

有什么建议为什么它无法构建吗?

附加数据,附加数据,附加数据,附加数据,

最佳答案

您需要声明一个Stack类型的变量。

#include <stdlib.h>
#include <stdio.h>
#include "mod.h"

//Pagrindinis kodas
int main() {
Stack *s = calloc(sizeof(Stack), 1); // calloc allocates memory and sets all bits to 0.
push(s, 15); // No * needed here. s is already a Stack* and the function expects a Stack*
push(s, 4);
push(s, 18);
printf("%d",s->data[0]);
system("PAUSE");
return 0
}

可能会有更多错误,但这应该可以解决 Main 的编译问题。

关于c - 用c构建堆栈的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23630392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com