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: 171
        
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