Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,870 questions

51,793 answers

573 users

How to initialize 2D array in struct with zeros and a number at specific row and column in C

2 Answers

0 votes
#include <stdio.h>

typedef struct {
    int arr[4][5];
    char ch;
} ST;

int main(void) {

    static const ST s = { { { 0 },
                            { 0 },
                            { [2] = 99 } },
                          'z' };

    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 5; j++) {
            printf("arr[%d][%d] = %d\n", i, j, s.arr[i][j]);
        }
        printf("\n");
    }
        
    printf("s.ch = %c\n", s.ch);

    return 0;
}




/*
run:

arr[0][0] = 0
arr[0][1] = 0
arr[0][2] = 0
arr[0][3] = 0
arr[0][4] = 0

arr[1][0] = 0
arr[1][1] = 0
arr[1][2] = 99
arr[1][3] = 0
arr[1][4] = 0

arr[2][0] = 0
arr[2][1] = 0
arr[2][2] = 0
arr[2][3] = 0
arr[2][4] = 0

arr[3][0] = 0
arr[3][1] = 0
arr[3][2] = 0
arr[3][3] = 0
arr[3][4] = 0

s.ch = z

*/

 



answered Apr 24, 2023 by avibootz
0 votes
#include <stdio.h>

typedef struct {
    int arr[4][5];
    char ch;
} ST;

int main(void) {

    static const ST s = { { [1][2] = 99 }, 'z'};

    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 5; j++) {
            printf("arr[%d][%d] = %d\n", i, j, s.arr[i][j]);
        }
        printf("\n");
    }
        
    printf("s.ch = %c\n", s.ch);

    return 0;
}




/*
run:

arr[0][0] = 0
arr[0][1] = 0
arr[0][2] = 0
arr[0][3] = 0
arr[0][4] = 0

arr[1][0] = 0
arr[1][1] = 0
arr[1][2] = 99
arr[1][3] = 0
arr[1][4] = 0

arr[2][0] = 0
arr[2][1] = 0
arr[2][2] = 0
arr[2][3] = 0
arr[2][4] = 0

arr[3][0] = 0
arr[3][1] = 0
arr[3][2] = 0
arr[3][3] = 0
arr[3][4] = 0

s.ch = z

*/

 



answered Apr 24, 2023 by avibootz
...