C语言 如何将数组传递给函数参数?[重复]

0yycz8jy  于 2023-03-22  发布在  其他
关注(0)|答案(1)|浏览(145)

此问题在此处已有答案

Passing an array as an argument to a function in C(11个答案)
11小时前关门了。
我有这个代码:

#include <stdio.h>

void replaceIndexElement (int index, int element);

int main () 
{
    replaceIndexElement(2, 3);
    return 0;
}

void replaceIndexElement (int index, int element) {
    int mainArr[10] = {0, 2, 1000, 6, 9, 11, 43, 8, 123, 87};
    mainArr[index] = element;
    for (int i = 0; i < 10; i++) {
        printf("%d\n", mainArr[i]);
    }
}

我需要pass array mainArr到函数参数来传递任何数组并按索引更改元素。
我在传递数组到参数后有一些错误。

sgtfey8w

sgtfey8w1#

你的意思好像是

#include <stdio.h>

int replaceIndexElement( int a[], size_t n, size_t index, int element );

int main ( void ) 
{
    int mainArr[] = { 0, 2, 1000, 6, 9, 11, 43, 8, 123, 87 };
    const size_t N = sizeof( mainArr ) / sizeof( *mainArr );

    replaceIndexElement( mainArr, N, 2, 3 );

    for ( size_t i = 0; i < N; i++ ) 
    {
        printf( "%d\n", mainArr[i] );
    }

    return 0;
}

int replaceIndexElement ( int a[], size_t n, size_t index, int element )
{
    int success = index < n;

    if ( success )  a[index] = element;

    return success;
}

相关问题