gpt4 book ai didi

C - 将数组复制到其他数组中作为输出参数

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

我正在尝试了解指针在 C 中的工作原理。我正在尝试一个简单的案例,其中一个数组和一个指向数组的指针是一个函数的参数,该函数将在第二个中复制第一个的元素。

这段代码是我写的

#include <stdio.h>

#define TAM 32

typedef int TablaArray[32];


void copyArray(TablaArray, TablaArray*, int);

void main(){

int t1[] = {1,2,3,4};
int t2[4];

copyArray(t1, t2,4);

for(int i = 0; i <= 3; i ++){
printf("%d - %d\n", t1[i], t2[i]);
}

}


void copyArray(TablaArray t1, TablaArray *t2, int tam){

for(int i = 0; i<tam-1; i++){
printf("%d\n", t1[i]);
*t2[i] = t1[i];
}
}

我希望通过 printf 表达式得到这样的结果:

1 - 1
2 - 2
3 - 3
4 - 4

但我绝对不知道方法......我一直在寻找 stackoverflow,因为我确信这个微不足道的问题已经得到解答......但我没有找到它......

最佳答案

您需要确保传递两个指向两个数组的 int 指针。在您的代码中,只有一个参数是指针。下面的代码应该更清楚:

#include <stdio.h>

void copyArray(int * arr1, int * arr2, int size);

int main(void)
{

int t1[] = {1,2,3,4};
int t2[4];

copyArray(t1, t2,4);

for(int i = 0; i <= 3; i ++)
{
printf("%d - %d\n", t1[i], t2[i]);
}

return 0;
}


void copyArray(int * arr1, int * arr2, int size)
{

for(int i = 0; i < size; i++)
{
printf("%d\n", arr1[i]);
arr2[i] = arr1[i];
}

return;
}

编辑:在您所写的内容中,TablaArray * 是指向 32 个整数数组的指针,而您需要一个 int *

typedef int TablaArray[32]; 

是不好的做法

关于C - 将数组复制到其他数组中作为输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44609252/

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