Функция принудительной отправки списка - PullRequest
0 голосов
/ 07 апреля 2011
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

struct stackNode
{
    int data;
    struct stackNode *nextPtr;
};


void instructions()
{
    printf("[1]Push a value on the stack\n");
    printf("[2]Pop a value off the stack\n");
    printf("[3]Display the whole stack\n");
    printf("[4]Exit");
} 

void push(struct stackPtr *topPtr, int info)
{
    struct stackPtr *newPtr;
    newPtr= malloc(sizeof(struct stackNode));
    if(newPtr !=NULL)
    {
        newPtr->data = info;
        newPtr->nextPtr=*topPtr;
        *topPtr=newPtr;
    }
    else
    {
        printf("%d not inserted no memory available");
    }

int main()
{
    struct StackNodePtr *stackPtr;
    stackPtr = NULL;
    int choice, value;
    do
    {   
        instructions();
        printf("\nEnter Your Choice: ");
        scanf("%d",&choice);
        if(choice == 1)
        {
            printf("Enter  a value for the stack");     
        }             
        if(choice == 2)
        {
            printf(" "); 
        }       
        if(choice == 3)
        {
            printf(" ");
        }
        if(choice == 4 )
        {
            printf("bye!");
            return 0;
        }
    } while(choice !=4);
    system("pause");
}

Я сделал функцию push для своего связанного списка и стекового кода, но дело в том, что он не работает, есть огромные ошибки в функции push, что с ним не так? он не позволяет использовать malloc, почему?

Ответы [ 4 ]

2 голосов
/ 07 апреля 2011

Это у вас работает?

struct stackNode { int data; struct stackNode *nextPtr; };

int main() { struct stackNode * stackPtr = NULL; }
2 голосов
/ 07 апреля 2011
struct stackNode
{
   int data;
   struct stackNode *nextPtr;
};

int main()
{
    struct stackNode *stackPtr = NULL;
}
1 голос
/ 07 апреля 2011

Эта строка:

typedef struct StackNode *StackNodePtr;

, кстати, не так. Ваши typedefs должны быть:

typedef struct stackNode StackNode;
typedef StackNode* StackNodePtr;

Понятия не имею, почему вы против использования typedef - это делает код намного более читабельным.

1 голос
/ 07 апреля 2011
// just precede the struct type with ... struct
struct stackNode* stackPtr = NULL;

Удачного кодирования.

...