如何解决删除二维数组的动态元素
我创建了一个学生数据库,允许用户添加和删除学生姓名。我希望我的数组是动态的。程序运行成功,以便将学生添加到数据库中。但是当我想从数据库中删除时,在显示循环中我有内存访问冲突。我知道我的程序崩溃是因为我试图读取一个被删除的学生,但我不知道我必须在循环中写入哪个条件才能超过这个不再存在的值。
char** delete(char** database,int length,char* word)
{
if (length)
{
char** temp = new char* [length];
for (int i = 0; i <= length; i++)
{
if (strcmp(*(database + i),word) != 0)
{
*(temp + i) = *(database + i);
}
else
{
delete database[i];
}
}
for (int i = 0; i < length; i++)
{
for (int j = 0; temp[i][j] != '\0'; j++)
{
cout << temp[i][j];
}
cout << endl;
}
return temp;
}
return NULL;
}
这是我的主要功能的一部分,与我想要的相对应。 lengthDb 是一个 int var,表示数据库的大小。
char** database = NULL;
cout << "Enter the name of student to delete" << endl;
cin.getline(student,50);
lengthDb--;
database = del(database,lengthDb,student);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。