小编rus*_*fox的帖子

使用C++动态分配结构数组

我试图动态分配一组记录.当我使用./a.out运行我的程序时它看起来工作正常但是当我尝试运行程序从.txt文件(./myProg <)输入数据时,它会重复记录整个数组中的第一行文本并且崩溃并且最终不会打印出所选书籍.我的猜测是我没有正确地创建数组,但我似乎无法弄清楚我的问题是什么.

struct Book {
    char *title; //entered with no spaces
    int date; // in the form ddmmyy
};

Book *createRecord(int);
void input(Book *, int);
void display(Book *, int, int);
void destroyRecord(Book *);

int main() {
    int arrN = 0;
    int n = 0;

    cout << "Enter size of array: ";
    cin >> arrN;

    Book *bookArr;  
    bookArr = new Book[arrN];

    bookArr = createRecord(arrN);

    input(bookArr, arrN);

    cin.ignore();
    cout << "Book: ";
    cin >> n;

    display(bookArr, arrN, n);  
    destroyRecord(bookArr);

    return EXIT_SUCCESS; 
} …
Run Code Online (Sandbox Code Playgroud)

c++ arrays records dynamic-memory-allocation

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

c++ ×1

dynamic-memory-allocation ×1

records ×1