gpt4 book ai didi

c - 修改 C 函数中的数组

转载 作者:行者123 更新时间:2023-12-02 21:40:20 29 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>

void array_tester(int *array);

int main(int argc,char *argv[])
{
int test[] = {1,1,1,1};
int print;
for(print = 0; print < sizeof(test) / sizeof(int); print++)
{
printf("%d\n",test[print] );
}

array_tester(test);
for(print = 0;print < sizeof(test)/sizeof(int);print++)
{
printf("%d\n",test[print] );
}

return EXIT_SUCCESS;
}


void array_tester(int array[])
{
int i ;
for(i = 0; i < sizeof(array) / sizeof(int); i++)
{
array[i] = i;
}
}

问题是我想修改 array_tester 函数中的数组,但我无法这样做。我在 sizeof() 中使用什么?

最佳答案

您必须手动传递有关数组大小的信息。

void array_tester( int* array , int size ) ;

然后调用它:

array_tester( test , sizeof(test)/sizeof(*test) ) ;

这背后的原因是传递给函数的数组将衰减为指针,并且 sizeof 将返回指针的大小而不是原始数组。

关于c - 修改 C 函数中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20568414/

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