C'è un modo per digitare un array bidimensionale in C? Qualcosa di simile:Typedef per array bidimensionale in C
typedef char[10][10] board;
Questo esempio non viene compilato. C'è modo di farlo? O qualsiasi altra soluzione?
C'è un modo per digitare un array bidimensionale in C? Qualcosa di simile:Typedef per array bidimensionale in C
typedef char[10][10] board;
Questo esempio non viene compilato. C'è modo di farlo? O qualsiasi altra soluzione?
Prova questo:
typedef char board[10][10];
Quindi è possibile definire nuovi array come questo:
board double_array = {"hello", "world"};
E 'lo stesso con:
char double_array[10][10] = {"hello", "world"};
quale sarà la nuova definizione per l'array 2 dimensioni? – user2216190
@ user2216190: vuoi dire 'dato un 'typedef' di' board' valido, come creerai le variabili di quel tipo?' Se è così, la risposta è 'board b;' crea una variabile 'b' di tipo' board', che è completamente equivalente a 'char b [10] [10];' (perché un 'typedef' introduce un nome alternativo per un tipo, non un nuovo tipo). –
Quando dichiarato con board double_array = {"ciao", "mondo"}; Come accedere agli elementi dell'array? – Rahul
Type Definition Dichiarazione
L'istruzione di definizione del tipo viene utilizzata per consentire la definizione dei tipi di dati definiti dall'utente utilizzando altri tipi di dati già disponibili.
formato di base:
typedef existing_data_type new_user_defined_data_type;
Così, il vostro dovrebbe essere:
typedef char board[10][10];
è possibile utilizzarlo come ha detto Yu Hao o si può anche usarlo con i puntatori char per definire un array 2D come questo:
typedef char *board[10];
E quindi si può fare come descritto da YU Hao. In questo modo non è necessario il codice hard il numero di caratteri che si desidera utilizzare per le stringhe.
Con il nome 'board', è probabile che il tipo verrà utilizzato per rappresentare un tabellone di gioco, e non sarà usato per contenere stringhe di per sé. Questo è un dettaglio minore però. Inoltre, rigorosamente 'typedef' dà un nome (alias) a un tipo esistente, piuttosto che creare un nuovo tipo. Questo è un dettaglio sottile e non toglie materialmente la tua risposta. –
@ JonathanLeffler Beh, sì !! punto preso signore, quello sembra più probabile con quello grazie !! – 0decimal0
hai provato: typedef char board [] [10]; ? –
Come definiresti una variabile chiamata 'board' come array 2D? Risposta: 'char board [10] [10];'. Per creare una 'scheda' typedef invece di una variabile, usa la 'classe di memoria'' typedef': 'typedef char board [10] [10];'. È quindi possibile creare 3 schede usando: 'board b1, b2, b3;'. Potresti anche creare un array di schede: 'board ab [10];'. –