2013-02-28 72 views
-2

好吧,我只是完全停留在作业上,而我的大脑现在不能正常工作。我仍然不是一个程序员,所以我需要帮助,想知道代码中如何解决这些问题。在C中返回值

我有麻烦理解使用指针。

我不确定是否正在尝试返回值。 我将不得不编写另一个程序来实际使用这些功能,但我首先给了这个程序。

对于添加函数,我试图使项指向每个参数来获取数据。

对于AddItem函数,我试图让一个新项目指向来自Add Function的项目并获取该数据。

包含函数(仍在继续):我必须从AddItem函数中获取一个参数。如果item存在则返回true,否则返回false。

获取函数(仍在工作):与包含函数的参数相同。返回找到的项目的指针,如果找不到项目,则返回NULL。

Data.h

#ifndef DATA_H_ 
    #define DATA_H_ 

    /* 
    * Database Struct 
    */ 
    typedef struct 
    { 
     /*char *array[10];*/ 
     Iteminfo *itemdata; 
     int counter; 
    }databaseinfo; 

    /* 
    * Item Struct 
    */ 
    typedef struct 
    { 
    int IDnum; 
     double price; 
    char * Name; 
    }Iteminfo; 

    /* 
    * Prototypes 
     */ 
     char DatabaseManage(); 
     int Add(); 
     char AddItem(); 
     int Contains(); 
     int Get(); 

     #endif /* DATA_H_ */ 

DatabaseManage.c

#include <stdio.h> 
#include "Data.h" 

    /* 
    * Constructor Function 
    * @Parameters databaseinfo, count 
    * Creates and returns the database 
    */ 
    databaseinfo constructor(Iteminfo *itemdata, int counter) 
    { 
     databaseinfo *newdb = malloc(sizeof(databaseinfo)); 
     return constructor; 

    } 
    /* 
    * Add Function 
    * @Parameters Iteminfo, IDnum, price, Name 
    * Adds an item to the database 
    */ 
     int Add(Iteminfo *item, int IDnum, double price, char * Name) 
     { 
     item->IDnum = IDnum; 
     item->price = price; 
     item->Name = Name; 

     return item; 
    } 

    /* 
    * AddItem Function 
    * @Parameters Iteminfo 
    * Copies item to database 
    */ 
    char AddItem(Iteminfo *item, char * newItem) 
    { 
    newitem->item = item; 
     return copyitem; 

    } 

    /* 
    * Contains Function 
    * @Parameter 
    * Returns if the item exists or not in the database 
    */ 
    int Contains(void) 
    { 

    } 

    /* 
    * Get Function 
    * @Parameters 
    * Returns the pointer of the item from the database 
    */ 
    int get(void) 
    { 

    } 
+3

什么问题? – 2013-02-28 07:33:50

+1

@KarthikT希望我们能够完成他们的功能 – 2013-02-28 07:37:42

+0

如果我正确地做事情,我想这更像是语法相关的问题。如果我正在使用指针来返回值,我现在正试图弄清楚在这里要做什么。 – user2031589 2013-02-28 07:38:34

回答

1

第一要紧的:

databaseinfo constructor(Iteminfo *itemdata, int counter) 
{ 
    databaseinfo *newdb = malloc(sizeof(databaseinfo)); 
    return constructor; 
} 

当你写在函数返回时应该返回如果该值它不是void功能。

所以它应该是:

databaseinfo* constructor(Iteminfo *itemdata, int counter) 
{ 
    databaseinfo *newdb = (databaseinfo*)malloc(sizeof(databaseinfo)); 
    // your code here for data initialization 
    return newdb; 
} 

在这种情况下,函数会返回一个指向你分配的内存。

Ans等。