gpt4 book ai didi

c - MinGW GCC 4.7.0 警告我将 double [][] 传递给 const double(*)[]

转载 作者:太空宇宙 更新时间:2023-11-04 03:57:43 25 4
gpt4 key购买 nike

<分区>

我在主函数中有两种类型的双二维数组。我有将 array1 复制到 array2 的函数。我将两个数组都传递给该函数。第一个数组不需要更改,所以我将形式参数 od 第一个数组声明为 const 类型,但 MinGW GCC 给 ma 一个警告:

main.c:14:5: warning: passing argument 1 of 'Copy' from incompatible pointer type [enabled by default]
main.c:2:6: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'

程序除了该警告外还可以工作,但是如果我只想从中读取,是否可以声明类型为 const 的形式参数。我想保护被篡改的实参。

#include <stdio.h>
void Copy( const double (*)[3], double (*)[3], int);

int main(void)
{
double array[4][3] =
{
{79.2, 12.6, 111.9},
{56.4, 139.2, 111.5},
{11.1, 99.7, 21.0},
{91.0, 11.2, 45.5}
};
double arrCopy[4][3];
Copy(array, arrCopy, 4);


for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 3; j++)
{
printf("%.2f ", *(*(arrCopy + i) + j));
}
putchar('\n');
}
return 0;
}

void Copy( const double (*array)[3], double (*arrCopy)[3], int n )
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j < 3; j++)
{
*(*(arrCopy + i) + j) = *(*(array + i) + j);
}
}
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com