Search code examples
ccharacter-arrays

Passing a 3D array to a function.


I'm having a hard time passing a 3D array to a function. I've googled it to death and I think I understand but the code crashes with no output when run. (codeblocks, gcc)

#include <stdio.h>
#include <stdlib.h>
void foo(char (*foo_array_in_foo)[256][256]);
int main()
{
char foo_array[256][256][256];
int line_num = 0;
    printf("Hello world!\n");
    foo(foo_array);
    return 0;
}
void foo(char (*foo_array_in_foo)[256][256])
{
    printf("In foo\n");
}

Solution

  • You have a stack overflow

    256*256*256 = 16777216 bytes > STACK_SIZE
    

    that is the reason for the segmentation fault.

    If you need such a large ammount of memory you have to use malloc.