修改C中函数中的数组
#include #include 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
将返回指针的大小而不是原始数组。