-2

わかりました、私は宿題に完全に行き詰まっており、私の脳は今働いていません. 私はまだプログラマーが得意ではないので、コードで何が起こっているのかを知りたいのですが、どうすれば修正できるのでしょうか。

ポインターを使用して理解するのに苦労しています。

値を返そうとするのが正しいかどうかはわかりません。これらの関数を実際に使用するためにコーディングしなければならない別のプログラムがありますが、最初に取り組むためにこれを与えられました。

Add Function については、データを取得するためにアイテムが各パラメーターを指すようにしようとしています。

AddItem 関数の場合、新しい項目が Add 関数からの項目を指すようにして、そのデータを取得しようとしています。

関数を含む (まだ作業中): AddItem 関数からパラメーターを取得する必要があります。アイテムが存在する場合は true、存在しない場合は false を返します。

Get 関数 (まだ作業中): Contain 関数と同じパラメーター。見つかったアイテムのポインターを返すか、アイテムが見つからない場合は NULL を返します。

データ.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)
     {

     }
4

1 に答える 1

1

まず第一に:

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

関数内に return を書くと、関数でなければ値を返すことになっていvoidます。

したがって、次のようになります。

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

この場合、関数は割り当てられたメモリへのポインタを返します。

アンズなど。

于 2013-02-28T07:40:25.050 に答える