Search code examples
arrayscfunctionfunction-callfunction-declaration

How can I pass array to function argument?


I have this code:

#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]);
    }
}

I need pass array mainArr to function argument to pass any array and change the element by index.

I have some errors after passing array to argument.


Solution

  • It seems you mean the following

    #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;
    }