2013-02-28 74 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等。