Multi-dimensional array in c

ro ko

I have a problem working with multi-dimensional array in C coming from PHP background.

I have an array msg which I am using as input for now. 1st element of array stores 'node_id', 2nd element stores 'actual message' and 3rd element holds 'controller_id'.

Task is handled by function handleSlotMessage(): This function should for each controller_id receive 3 input message (wait until it receives all 3 messages), upon receiving all 3 messages pass it further for processing.

For storing messages, I am trying to use a 'Multi-dimensional array' (which can be simply achieved in PHP): resultFromNodes but underlining my limited knowledge of 'C' I am unable to get this done.

For all the usage of resultFromNodes variable in handleSlotMessage function I am getting an error Subscribed value is not an array, pointer, or vector.

How can this be implemented in 'C' ? I tried answer from this to check if array is set or not.

#define UNINITIALIZED 0xcdcdcdcd


void handleSlotMessage();

int main(int argc, const char * argv[]) {

    int resultFromNodes[99][3] = {UNINITIALIZED};
    int i, j;
    int msg[10];

    // test data only
    for ( i = 1; i < 4; i++ ) {
        for ( j = 1; j < 4; j++ ) {
            msg[0] = j; // sender's id (node id)
            msg[1] = i*j; // message
            msg[2] = i; // controller's id (requester's id)

            handleSlotMessage(msg, *resultFromNodes);

        }
    }
    return 0;
}


void handleSlotMessage(int msg[], int resultsFromNodes[]) {

    // get controller id
    int controller_id = msg[2];
    int node_id = msg[0];
    int message = msg[1];
    int slot_count = 3;

    // check if the resultFromNodes already has controller_id set
    if (resultsFromNodes[controller_id] == UNINITIALIZED) {
        resultsFromNodes[controller_id][0] = slot_count;
    }
    if(resultsFromNodes[controller_id][0] == 0) {
        printf("Message Handled and result from Nodes sent for further processing! \n");
    } else {
        resultsFromNodes[controller_id][node_id] = message;
        printf("on node: %i  msg: %i controller: %i  \n\r", node_id, message, controller_id);
        resultsFromNodes[controller_id][0]--;
    }

    return;
}

EDIT: If this gives any one better idea, 'controller_id' ranges from 1-99 so instead of checking it is set or not it is feasible to check if it is within that range. I don't know if it helps in any way.
Marian

You probably wanted to define your function as:

void handleSlotMessage(int msg[], int (*resultsFromNodes)[3]) { ... }

and to call it as:

handleSlotMessage(msg, resultFromNodes);

or equivalent:

handleSlotMessage(msg, &resultFromNodes[0]);

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Finding an element in multi dimensional array in C Programming

From Dev

How does multi dimensional array in C work

From Dev

Bug in multi-dimensional array program in C

From Dev

c# Multi-Dimensional Array verification

From Dev

instantiate and initialize multi dimensional array C#

From Dev

Compare multi dimensional array in c#

From Dev

Flattening a multi dimensional array

From Dev

Declare multi dimensional array

From Dev

Multi Dimensional array printing

From Dev

Multi dimensional array in JQ

From Dev

Multi Dimensional Array Construct

From Dev

C# How to check if an object is a multi-dimensional array

From Dev

C freeing multi-dimensional array inside a struct seems incorrect

From Dev

Objective C initing and object with a multi-dimensional array

From Dev

C++ Multi-dimensional Array Comma Index Address

From Dev

Char not working in multi dimensional array in C. Need clarification

From Dev

how to code multi-dimensional array in a function prototype in c++

From Dev

C++ Multi-dimensional Array Comma Index Address

From Dev

Initializing Error: How to create a multi dimensional zero array in C++

From Dev

C++ multi dimensional array of pointers without declaration

From Dev

Sort multi dimensional array based on sum of internal arrays in objective c

From Dev

Multi-dimensional or jagged array when dealing with matrix in C#?

From Dev

Extracting a column from a specific multi-dimensional array in C#

From Dev

assigning to multi-dimensional array

From Dev

How to parse this multi dimensional array

From Dev

Order array multi-dimensional

From Dev

Merging and looping multi dimensional array

From Dev

multi level dimensional array in php

From Dev

Adding values of multi dimensional array

Related Related

  1. 1

    Finding an element in multi dimensional array in C Programming

  2. 2

    How does multi dimensional array in C work

  3. 3

    Bug in multi-dimensional array program in C

  4. 4

    c# Multi-Dimensional Array verification

  5. 5

    instantiate and initialize multi dimensional array C#

  6. 6

    Compare multi dimensional array in c#

  7. 7

    Flattening a multi dimensional array

  8. 8

    Declare multi dimensional array

  9. 9

    Multi Dimensional array printing

  10. 10

    Multi dimensional array in JQ

  11. 11

    Multi Dimensional Array Construct

  12. 12

    C# How to check if an object is a multi-dimensional array

  13. 13

    C freeing multi-dimensional array inside a struct seems incorrect

  14. 14

    Objective C initing and object with a multi-dimensional array

  15. 15

    C++ Multi-dimensional Array Comma Index Address

  16. 16

    Char not working in multi dimensional array in C. Need clarification

  17. 17

    how to code multi-dimensional array in a function prototype in c++

  18. 18

    C++ Multi-dimensional Array Comma Index Address

  19. 19

    Initializing Error: How to create a multi dimensional zero array in C++

  20. 20

    C++ multi dimensional array of pointers without declaration

  21. 21

    Sort multi dimensional array based on sum of internal arrays in objective c

  22. 22

    Multi-dimensional or jagged array when dealing with matrix in C#?

  23. 23

    Extracting a column from a specific multi-dimensional array in C#

  24. 24

    assigning to multi-dimensional array

  25. 25

    How to parse this multi dimensional array

  26. 26

    Order array multi-dimensional

  27. 27

    Merging and looping multi dimensional array

  28. 28

    multi level dimensional array in php

  29. 29

    Adding values of multi dimensional array

HotTag

Archive