我有一些传递参数到函数的问题。例如:传递参数,指针和地址问题
#include <iostream>
using namespace std;
struct VShop
{
bool index;
char *fName;
char *edName;
char *genre1;
char *genre2;
double rating;
double price;
};
void AddtoDB (VShop *Film, char *name, char *ed, char *genre1, char *genre2, double rating, double price, int *size, int *element);
int main()
{
int size = 0, element = 0;
VShop *Film = new VShop[size];
AddtoDB(Film, "The Shawshank Redemption", "Frank Darabont", "Crime", "Drama", 9.2, 20, &size, &element);
cout<<size; // ERROR!
return 0;
}
void AddtoDB (VShop *Film, char *name, char *ed, char *genre1, char *genre2, double rating, double price, int *size, int *element)
{
*size++;
Film[*element].fName = name;
Film[*element].edName = ed;
Film[*element].genre1 = genre1;
Film[*element].genre2 = genre2;
Film[*element].rating = rating;
Film[*element].price = price;
*element=(*element+1);
}
林每次我想时间得到错误得到size
或element
。它发生了什么?谢谢。
什么是错误? – quasiverse
一个明显的错误是你正在通过'VShop * Film = new VShop [size]'创建一个空指针。由于'size' == 0,你根本没有分配任何内存(我甚至不确定'new Foo [0]'是否定义好了)。如果你在任何情况下使用C++,为什么不用数据库中的矢量? –
谢谢,它的工作。只需要重写我的功能。我不知道任何有关向量的信息,因为我刚开始学习C++。再次感谢。 – Atre