|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2003
Città: tra Borgo Ticino e Milano
Messaggi: 6046
|
problema di esecuzione programma C
Ciao ragazzi, sto cercando di imparare a programmare in C e mi sono imbattuto in un problema.
Ho il seguente codice: #include <stdio.h>; char *string = "Zorro\n"; void main(void) { printf(string); *(string+1) = 'a'; printf(string); } che nelle mie intenzioni scrive: Zorro Zarro però quando lo esguo windows mi da errore dopo aver scritto: Zorro L'ho compilato e linkato con Visual C++ Sapreste dirmi se ho sbagliato io qualcosa o è colpa di windows? Grazie a tutti
__________________
firma in progress |
![]() |
![]() |
![]() |
#2 | |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Re: problema di esecuzione programma C
Quote:
Codice:
char *string="Zorro\n"; Che, essendo costante, non può essere modificata, cosicché la riga: Codice:
*(string+1)='a'; Il modo più facile è usare un array di char: Codice:
char string[] = "Zorro\n"; Codice:
char * string; string=(char*)malloc(strlen("Zorro\n")+1); strcpy(string,"Zorro\n"); A te la scelta. Ah, a proposito: un paio di consigli: 1) la scrittura: Codice:
printf(string); Codice:
printf("%s",string); Il valore restituito da main dovrebbe essere 0 in caso di esecuzione terminata con successo, 1 in caso di esito non soddisfacente, 2 o più in caso di errori.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2003
Città: tra Borgo Ticino e Milano
Messaggi: 6046
|
grazie! ti avrei ringraziato prima ma ieri non mi funzionava la connessione ad internet.
mi rimane però qualche dubbio: -se dichiaro string come un array perchè poi lo richiamo come se fosse un puntatore? -perchè il compilatore non mi dava errori? grazie anche per i consigli!
__________________
firma in progress |
![]() |
![]() |
![]() |
#4 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
![]() |
![]() |
![]() |
#5 | ||
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
(Scusa, ma e' una cosa un po' delicata, e che adesso non mi ricordo bene.) Quote:
Che poi faccia quello che vogliamo noi... beh, vedrai che e' tutto un altro discorso! ![]()
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
||
![]() |
![]() |
![]() |
#6 | ||
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
In essenza, un array e' una zona di memoria contigua con un nome, mentre un puntatore e' una variabile che contiene un indirizzo di memoria. La sezione 6 delle comp.lang.c Frequently Asked Question ne parla estesamente. Per inciso, dalle domande 6.2, 6.3, 6.8 e 6.9 di tale sezione mi sembra si possa dedurre che la tua affermazione sarebbe ineccepibile se fosse nella forma: Quote:
(A proposito: leggiti la domanda 6.11 e impallidisci come sono impallidito io!)
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
||
![]() |
![]() |
![]() |
#7 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Mar 2003
Città: tra Borgo Ticino e Milano
Messaggi: 6046
|
grazie ancora!
__________________
firma in progress |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:42.