-2

好的,我只是完全专注于我的家庭作业,我的大脑现在无法正常工作。我仍然不是一个好的程序员,所以我需要帮助来想知道代码中发生了什么,我该如何修复它们。

我无法理解使用指针。

我不确定我是否正确地尝试返回值。将有另一个程序,我必须编写代码才能实际使用这些功能,但我首先得到了这个程序。

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

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

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

获取函数(仍在进行中):与包含函数的参数相同。返回找到的项目的指针,如果未找到项目,则返回 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_ */

数据库管理.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 回答