gpt4 book ai didi

c - 在c中返回一个固定大小的数组

转载 作者:太空狗 更新时间:2023-10-29 15:38:39 24 4
gpt4 key购买 nike

我想要一个函数来返回一个数组,或者一个指向数组的指针,在 c 或 c++ 中,它执行如下操作:

double[][] copy(double b[][], int mx, int my, int nx, int ny)
{
double[nx][ny] a;
int i,j;

for(i = mx; i<= nx; ++i)
for(j = my; j<= ny; ++j)
a[i][j] = b[i][j];

return a;
}

void main(void){

double A[2][3];
double B[2][3] = {{1,2}{3,4}{5,6}};

A = copy(B,0,0,1,2);
}

最佳答案

这是从函数返回数组的正确方法,如下所示:

#define NUM_ROWS (5)
#define NUM_COLS (3)

char **createCharArray(void)
{
char **charArray = malloc(NUM_ROWS * sizeof(*charArray));
for(int row = 0; row < NUM_ROWS; row++)
charArray[row] = malloc(NUM_COLS * sizeof(**charArray));

return charArray;
}

在这个例子中,上面的函数可以这样调用:

char **newCharArray = createCharArray();

newCharArray 现在可以使用了:

char ch = 'a';

for(int row = 0; row < NUM_ROWS; row++)
for(int col = 0; col < NUM_COLS; col++)
newCharArray[row][col] = ch++;

数组可以作为参数传递给类似的函数:

void freeCharArray(char **charArr)
{
for(int row = 0; row < NUM_ROWS; row++)
free(charArr[row]);
free(charArr);
}

关于c - 在c中返回一个固定大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754137/

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