PROBLEMA Crasha il terminale

Blast2028

Nuovo Utente
36
1
Heilà, studiando il C e facendo pratica sono incappato in un errore che mi sta uccidendo...
Ecco il codice:
Codice:
int main(){
 int i,p;
 char Dati_printf[1500]={"Nome", "Cognome" , "Email","Luogo di nascita"};
 char Dati_scanf[1000];

for(i=0;i<=3;i++){
    printf("Inserisci il %s ",Dati_printf[i]);
    scanf("%s",&Dati_scanf[i]);


}
printf("Spazio tattico\n");
for(i=0;i<=3;i++){
    printf("Il tuo %c e' %c \n",Dati_printf[p],Dati_scanf[p]);

}
}
Gli errori sono all'inizializzazione dell'array char , non ne capisco il motivo...
Se invece aggiungo *, ovvero lo rendo puntatore, non mi da errore il compilatore.
Provando in questo modo va in parte, perchè una volta compilato compare il terminale e crasha!

Qualcuno mi puo aiutare?
 

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro
Ho inserito all'interno dell'array dei semplici elementi che mi serviranno dopo.
Perché deve essere un array di puntatori a char. Ad esempio:
C:
char *pippo[2] = {“Pippo1”, “Pippo2”};
Come hai detto tu.
 

Andretti60

Utente Èlite
6,440
5,091
Tra l’altro noto adesso che fai lo stesso errore con il vettore “dati”, lo dichiari un vettore char e poi cerchi di memorizzare stringhe. Anche quello deve essere un vettore di puntatori, i cui elementi devono essere inizializzati (malloc) della dimensione giusta, prima di memorizzarci dentro i dati.
 
  • Mi piace
Reazioni: _Achille

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili