我想做一个函数,它接收一个二维数组并返回它的行('which')作为一个简单的数组。我写了这个:
int *row(int *array, int lines, int columns, int which)
{
int result[columns];
for (int i=0; i<columns; i++)
{
result[i] = *array[which][i];
}
return result;
}
但是,在第 7 行中,我收到了以下错误:数组下标的无效类型 'int[int]'。知道如何正确执行此操作吗?我还尝试将二维数组作为数组处理,但没有成功。我是新手,所以请避免太高级的概念。
谢谢您的帮助!
更新:感谢您的帮助!现在我的代码看起来像:
int n; //rows
int m; //columns
int data[100][100];
int array[100];
int *row(int *array, int rows, int columns, int which)
{
int* result = new int[columns];
for (int i=0; i<columns; i++)
{
result[i] = *array[which*columns+i];
}
return result;
delete[] result;
}
int main()
{
array=row(data, n, m, 0);
}
我仍然在 main 中遇到错误:将 'int*' 分配给 'int [100]' 时的类型不兼容
现在可能是什么问题?我也不知道在哪里使用 delete[] 函数来释放数组。
非常感谢你的帮助!