gpt4 book ai didi

c++ - 指针数组 *grades[]

转载 作者:行者123 更新时间:2023-11-28 00:07:48 26 4
gpt4 key购买 nike

我设法将两个不同的数组地址插入到指针数组中,但是当我打印它时,它只给我第一个数组。而不是他们两个:

 #include <iostream>
using namespace std;

int *readGrades(int *grades[], int size);

#define SIZE 2

void main()
{
int *grades[SIZE], *length,x;
length=readGrades(grades, SIZE);

for (int i = 0; i < SIZE; i++)
{
x = *(length+i);
for (int j = 0; j < x; j++)
cout << *(grades[i] + j) << endl;
}
}

int *readGrades(int *grades[], int size)
{
int num_grades, count[SIZE],j,x;
for (int i = 0; i < size; i++)
{
cout << "How many grades for student " <<i+1<< "?" << endl;
cin >> num_grades;
cout << "Insert " << num_grades << " grades\n";

grades[i] = new int[num_grades];
for ( j = 0; j < num_grades; j++)
{
cin >> *(grades[i] + j);
x = *(grades[i] + j);
}
count[i] = j;
}
return count;
}

如何打印这两个数组?

最佳答案

你在 readGrades 中返回一个 int* count,当 length 被分配 count 时 已经被销毁,并且您有一个悬空指针,这会导致取消引用时出现未定义的行为。停止一起使用指针并使用 std::vector

关于c++ - 指针数组 *grades[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com