c++ - 使用指针将第一个(2D)数组的值复制到第二个的函数
问题描述
我的任务是:
在您的 main 函数中,定义并初始化一个二维双精度数组。定义(但不初始化)另一个与第一个大小相同的二维双精度数组。编写一个函数,将第一个数组的值复制到第二个数组中,这次使用指针。
我努力了:
void cpyda(double *old_array,double *new_array,int length){
double *ptr_one=old_array;
double *ptr_two=new_array;
for(int i=0;i<length;i++){
ptr_two[i]=ptr_one[i];
}
for(int r=0;r<2;r++){
for(int c=0;c<3;c++){
cout<<new_array[r][c]<<" ";
}
cout<<endl;
}
}
int main(){
double array_one[2][3]={{1,2,3},{4,5,6}};
double array_two[2][3]={};
cpyda(array_one,array_two, 6);
}
我不断收到的错误是:
function-1-4.cpp: In function 'void cpyda(double*, double*, int)':
function-1-4.cpp:14:33: error: invalid types 'double[int]' for array
subscript
cout<<new_array[r][c]<<" ";
^
main-1-4.cpp: In function 'int main()':
main-1-4.cpp:9:11: error: cannot convert 'double (*)[3]' to 'double*'
cpyda(array_one,array_two, 6);
^~~~~~~~~
main-1-4.cpp:4:27: note: initializing argument 1 of 'void
cpyda(double*, double*, int)'
extern void cpyda(double *old_array,double *new_array,int length);
解决方案
main()
首先,我会在调用之后将数组输出代码放入cpyda(...)
- 毕竟,该函数只应该进行实际的复制......
其次,如果您的函数应该“使用指针”,那么真正使用指针,而不是声明为指针的变量,然后将其视为数组......
void cpyda(double *old_array,double *new_array,int length){
double *ptr_one=old_array;
double *ptr_two=new_array;
for(int i=0; i<length; i++) {
// ptr_two[i]=ptr_one[i];
*ptr_two++ = *ptr_one++
}
}
int main(){
double array_one[2][3]={{1,2,3},{4,5,6}};
double array_two[2][3]={};
cpyda(array_one[0], array_two[0], 6);
for (int r=0; r<2; r++) {
for (int c=0; c<3; c++) cout << array_two[r][c] << " ";
cout << endl;
}
}
您还可以cpyda
通过不费心将指针参数复制到本地来使函数更加简洁......</p>
void cpyda(double *old_array,double *new_array,int length){
for (int i=0; i<length; i++) *new_array++ = *old_array++;
}
这有帮助吗?
推荐阅读
- python - Python 中的 SQL 查询 - 在 SQL 查询中插入来自 Python 的值
- ios - 在 x 方向平移的 HighCharts 不起作用
- python - Power BI 视觉对象在工作区或 powerapp 中不起作用。修复可能是什么?
- webforms - 从站点核心链接重定向用户
- php - 在while循环中从数组中删除重复的内容
- youtube-api - YouTube 数据 API 未返回频道中的所有视频
- sql - 按条件将一列拆分为几列
- loops - PowerApps 循环中坐标之间的距离
- javascript - 不断检查类是否存在
- reactjs - MUI v5 @mui/material/styles 与 @emotion/react