错误 C2601:“X”:局部函数定义非法
听起来您正在另一个函数中定义一个函数;C++ 不允许你这样做。将定义X
移到它当前所在的函数之外。
另一种可能性是紧接在 之前还有另一个函数X
,而您错过了}
该函数末尾的 。
问题是 matrix_entry、temp 和 M 是未声明的标识符但在我的主要我有这个:
首先,类型需要在使用之前声明。听起来这个函数要么出现在 的定义之前matrix_entry
,要么出现在不同的源文件中。
matrix_entry
在需要使用它之前将定义移动到某个点,或者将其放在标题中并从每个需要它的源文件中包含它。matrix_entry
这将修复和的前两个“未声明的标识符”错误temp
。
如果M
在 中main
,则在其他功能中不可用。您可以将其传递给需要它的函数:
void Mode(matrix_entry * M){
matrix_entry temp;
temp=M[i];
M[i]=M[small_i];
M[small_i]=temp;
}
int main() {
matrix_entry *M = new matrix_entry [10];
//...
Mode(M);
//...
// Don't forget to delete anything you new
// (Better still don't new it in the first place,
// or use smart pointers if you must)
delete [] M;
}