分配的动态内存总是被删除?
Dynamic Memory Allocated is always deleted?
不明白,我有一个switch语句,让用户创建动态分配的内存,显示所有列表,最后删除它们(案例3,打印在下面。)
当我在程序中 select 情况 3 并输入 'y' 或 'Y' 以外的任何内容时,它仍然会删除列表,我不明白为什么...
如果有人能帮助我,我将不胜感激:
case 3:
cout << "Which list did you want to delete?" << endl
<< "List: ";
cin >> i;
i--;
if (dynArray[i] == NULL){
noListExist();
break;
}
else
printoutAllLists(dynArray[i], arraySize[i], i);
cout << "Are you sure? ('y' or 'n'):" << endl
<< "Confirm: ";
cin >> j;
if (j == 'y' || 'Y'){
delete[] dynArray[i];
dynArray[i] = NULL;
}
else
break;
break;
if (j == 'y' || 'Y')
始终为真,因为 ||
的右侧,即 'Y'
是非零值,当 j
不等于 'y'
时对其进行评估
使用:
if (j == 'y' || j== 'Y')
可能还有一些错误,也有内存泄漏的可能
您还需要在第一个 else 之后使用 {...} 来定义 else 语句的范围。就目前而言,您的 else 语句中只有一行。
不明白,我有一个switch语句,让用户创建动态分配的内存,显示所有列表,最后删除它们(案例3,打印在下面。)
当我在程序中 select 情况 3 并输入 'y' 或 'Y' 以外的任何内容时,它仍然会删除列表,我不明白为什么...
如果有人能帮助我,我将不胜感激:
case 3:
cout << "Which list did you want to delete?" << endl
<< "List: ";
cin >> i;
i--;
if (dynArray[i] == NULL){
noListExist();
break;
}
else
printoutAllLists(dynArray[i], arraySize[i], i);
cout << "Are you sure? ('y' or 'n'):" << endl
<< "Confirm: ";
cin >> j;
if (j == 'y' || 'Y'){
delete[] dynArray[i];
dynArray[i] = NULL;
}
else
break;
break;
if (j == 'y' || 'Y')
始终为真,因为 ||
的右侧,即 'Y'
是非零值,当 j
不等于 'y'
时对其进行评估
使用:
if (j == 'y' || j== 'Y')
可能还有一些错误,也有内存泄漏的可能
您还需要在第一个 else 之后使用 {...} 来定义 else 语句的范围。就目前而言,您的 else 语句中只有一行。