Struct arrays in C

Posted by ThomasTheTankEngine on Stack Overflow See other posts from Stack Overflow or by ThomasTheTankEngine
Published on 2013-10-18T03:50:58Z Indexed on 2013/10/18 3:53 UTC
Read the original article Hit count: 106

Filed under:
|

Hi I'm having trouble trying to initializing each element of the struct array. When I try and assign the value ZERO to both 'bSize' and 'msgs', it doesn't work as it errors out when i get to malloc. In the printf statement it prints a -1852803823 number. Excuse the messy code as i'm playing around trying to figure it out.

struct message{
    int *data;
    int bSize;
    int msgs;
};

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

void getSchedFile (FILE *file, int **schd) {
    struct message sMsg[nodeCount];
    const int pakSize = 6;

    // Iniitialise message buffer
    for (int i=0; i<nodeCount; i++){
        sMsg[i].bSize = 0;
        sMsg[i].msgs = 0;
        printf("bSize %d\n",sMsg[i].bSize);
    }

       /* Get the number of bytes */
    fseek(file, 0L, SEEK_SET);
    int time;
    while((fscanf(file, "%d", &time)) != EOF){
        int src;
        fscanf(file, "%d", &src); // get source node id

        // These are here for easier reading code
        int aPos = sMsg[src].bSize;
        int nMsg = sMsg[src].msgs;
        printf("size %d\n", sMsg[src].bSize);

        if (sMsg[src].bSize==0){
                sMsg[src].data = malloc( pakSize * sizeof(int));
            }else{
                sMsg[src].data = realloc(sMsg[src].data, (aPos+pakSize)*sizeof(int));
        }

© Stack Overflow or respective owner

Related posts about c

    Related posts about struct