|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2014
Messaggi: 5
|
[C] array di stringhe
salve a tutti,
sono piuttosto inesperto di programmazione C e mi chiedevo se fosse possibile inizializzare un array i cui elementi siano delle stringhe . |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
char elenco[][10] = { "uno", "due", "tre", "quattro", "cinque" };
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: May 2014
Messaggi: 5
|
La semplicitá della tua risposta mi fa sentire un tantino stupido
.Comunque grazie mille mi sei stato di grande aiuto ma una matrice di questo tipo char elenco [4] [4] alloca in memoria 16 byte giusto? Ultima modifica di spoiler. : 27-05-2014 alle 14:30. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Sì, 16 byte
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Quote:
Lo standard C non indica esattamente quanto grandi sono i vari tipi (può variare da compilatore a compilatore o da architettura a architettura), ma nel 99% delle piattaforme un char è 1 byte, quindi non ci si preoccupa più di tanto. http://en.wikipedia.org/wiki/C_data_types Se devi fare un programma dove la dimensione del tipo di dato è molto importante (device driver, pacchetti di rete e cose del genere) ti consiglio di usare i tipi definiti in stdint.h, che son garantiti di avere la giusta dimensione che gli indichi. |
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
|
|
|
|
|
|
|
#7 | ||
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Quote:
La cosa interessante però, è che è 1 byte "C", ovvero secondo quanto indicato dallo standard (PDF, pag.4): Quote:
Quindi è vero che 16*sizeof(char) == 16, però non sono necessariamente 16*8 = 128 bit. Quante cose si imparano! (e quanto gli standard C e C++ sono inutilmente complessi) |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:24.











.










