Sponsored Content
Top Forums Programming Looping an array of 2d arrays in C Post 303023421 by Azrael on Sunday 16th of September 2018 03:16:47 PM
Old 09-16-2018
Looping an array of 2d arrays in C

Le sigh... Hopefully this will be the last time I have to ask for help on this topic. For a while now I've been working with a 1d array that holds 2d arrays. For reference you can view here. Now I'm just trying to loop through the elements with the following:

Code:
#include <stdio.h>

void arrbyptr(int (*ptr[2][2])[2]) {

int result;

    for ( int i = 0; i < 2; ++i ){
        for ( int j = 0; j < 2; ++j ){
            for ( int k = 0; k < 2; ++k ){
                result = (*ptr[i][j])[k];
                printf("%d\n", result);
            }
        }
    }
}

int main(void)
{
        int arr2d[2][2]={ {1,2},{3,4} };
        int arr2db[2][2]={ {5,6},{7,8} };

        int (*ptr[2][2])[2]= { { arr2d, arr2db } };

        arrbyptr(ptr);
}

It runs momentarily before segfaulting:

Code:
$ ./test
1
2
5
6
Segmentation fault

I get no errors or warnings from gcc. And yes, I understand logical errors will not show up. Tried to run this through strace, but can't find where its failing or why.

Any advice much appreciated.

Last edited by Azrael; 09-16-2018 at 06:03 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl question - looping through an array of hashrefs

I have an array of hashrefs that look like the following: my @LAYOUT = ( {SQL_1 => "select count (*) FROM prospect WHERE PROCESS_DATE = To_date('INSERT_DATE_HERE', 'mm/dd/yyyy') and tiff_filename is not null ... (2 Replies)
Discussion started by: kregh99
2 Replies

2. Shell Programming and Scripting

KSH script not looping through array

Hi All, I'm trying to get a script to loop through an array. The array is basically a list of .zip files. I'd like the script to loop through and unzip the zip files contained in the zip file list. When I run the script, it unzip the first zip file correctly, and then stops Any thoughts? Here's... (2 Replies)
Discussion started by: kelldan
2 Replies

3. Shell Programming and Scripting

Perl array of arrays

Hi, I am trying to assign an array as a value to one of the array element, I mean I have an array @KS and array @kr. I want array @KS to hold @kr as an element. So I am doin this $KS=@kr; But the value stored is number of elements in the @kr array. Can... (2 Replies)
Discussion started by: eamani_sun
2 Replies

4. UNIX for Dummies Questions & Answers

Help in Array looping and creating multiple lines

hi Gurus, I'm a newbie in scripting please check my script if this is correct. I think there's something wrong with it but I;m not sure. I'm trying to create multiple lines using awk from external xml files but i want to add additonal info in the data manually Since i don't knwo how to... (0 Replies)
Discussion started by: sexyTrojan
0 Replies

5. Shell Programming and Scripting

Looping through arrays

i just started learning arrays and found this example on the net: for (( i = 0 ; i < ${#names} ; i++ )) do echo ${names} done However, even though I can echo ${#names} I am unable to get the increment to work. I have tried eliminating spaces and changing brackets and nothing seems... (4 Replies)
Discussion started by: newbie2010
4 Replies

6. UNIX for Dummies Questions & Answers

Looping through the contents of array for output name

Hi all, I am trying to loop through the string contents of an array, to add it during the saving of the output files. I am trying this code to print each column and save it to unique file name, but it doesn't work. Thanks for any help. fnam=(japan usa uk) alldata.dat contained sample data... (1 Reply)
Discussion started by: ida1215
1 Replies

7. Shell Programming and Scripting

Bash arrays: rebin/interpolate smaller array to large array

hello, i need a bit of help on how to do this effectively in bash without a lot of extra looping or massive switch/case i have a long array of M elements and a short array of N elements, so M > N always. M is not a multiple of N. for case 1, I want to stretch N to fit M arrayHuge H = (... (2 Replies)
Discussion started by: f77hack
2 Replies

8. Programming

Looping through multiple arrays in C.

Not sure if this is possible, but I've tried this about a thousand ways now. I am making something with a lot of arrays. I thought I could put the array names into a separate array and then loop through them to call all of their elements. This is the best I've got so far: #include <stdio.h>... (4 Replies)
Discussion started by: Azrael
4 Replies

9. Programming

Making an array of 2D arrays in C

I hate I'm asking for help again. Unfortunately it seems there just aren't any links I can find on making an array that holds a bunch of two dimensional arrays. Maybe my google-fu is lacking. Basically I have a header file like this: #define MATRIX 10 int white_l1; int white_l2; int... (2 Replies)
Discussion started by: Azrael
2 Replies

10. Programming

Calling an array of arrays in C.

Corona688 was great in helping me learn how to create arrays that hold other two dimensional array here. Unfortunately I didn't think ask about how to implement or call them. Basically, I'm trying to call an array of two-dimensional arrays like this: declaration: int (*side_one) = { { white_l1,... (6 Replies)
Discussion started by: Azrael
6 Replies
ATOMIC_OR(3)						   BSD Library Functions Manual 					      ATOMIC_OR(3)

NAME
atomic_or, atomic_or_32, atomic_or_uint, atomic_or_ulong, atomic_or_64, atomic_or_32_nv, atomic_or_uint_nv, atomic_or_ulong_nv, atomic_or_64_nv -- atomic logical 'or' operations SYNOPSIS
#include <sys/atomic.h> void atomic_or_32(volatile uint32_t *ptr, uint32_t bits); void atomic_or_uint(volatile unsigned int *ptr, unsigned int bits); void atomic_or_ulong(volatile unsigned long *ptr, unsigned long bits); void atomic_or_64(volatile uint64_t *ptr, uint64_t bits); uint32_t atomic_or_32_nv(volatile uint32_t *ptr, uint32_t bits); unsigned int atomic_or_uint_nv(volatile unsigned int *ptr, unsigned int bits); unsigned long atomic_or_ulong_nv(volatile unsigned long *ptr, unsigned long bits); uint64_t atomic_or_64_nv(volatile uint64_t *ptr, uint64_t bits); DESCRIPTION
The atomic_or family of functions load the value of the variable referenced by ptr, perform a logical 'or' with the value bits, and store the result back to the variable referenced by ptr in an atomic fashion. The *_nv() variants of these functions return the new value. The 64-bit variants of these functions are available only on platforms that can support atomic 64-bit memory access. Applications can check for the availability of 64-bit atomic memory operations by testing if the pre-processor macro __HAVE_ATOMIC64_OPS is defined. SEE ALSO
atomic_ops(3) HISTORY
The atomic_or functions first appeared in NetBSD 5.0. BSD
April 11, 2007 BSD
All times are GMT -4. The time now is 07:22 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy