Premetto che sto recuperando la parte di C che mi manca dal programma di 4a informatica con le dispense del professore e facendo gli esercizi da lui proposti, quindi anche se vi possono sembrare stupidi o inutili hanno valore puramente didattico.
Questo non capisco perchè da quell'errore che vi ho segnato nella somma in fondo
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
/*Dichiarare due variabili intere, e puntare ad esse tramite due puntatori generi-
ci. Acquisire valori per le due variabili, quindi calcolarne la somma, tramite
accessi indiretti alle variabili, e opportune forzature dei puntatori.*/
int main(int argc, char *argv[])
{int a,b;
void*Pa=&a;
void*Pb=&b;
printf("Inserisci valore a (intero)\n");
scanf("%d",(int*)Pa);
fflush(stdin);
printf("Inserisci valore b (intero)\n");
scanf("%d",(int*)Pb);
fflush(stdin);
(int*)Pa=(int*)Pa+(int*)Pb; //invalid operands to binary +
pintf("%d",(int*)Pa);
system("PAUSE");
return 0;
}
Questo vi conviene lanciarlo per capire come reagisce per come l'ho fatto. Vorrei capire come si fa in questo caso ad accedere ad un singolo campo della stringa.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*Dichiarare una STRINGA COSTANTE SENZA NOME, quindi effettuare su di essa le se-
guenti operazioni:
- valutare il numero di byte occupati in memoria da tale stringa;
- valutare il numero di caratteri significativi;
- visualizzarla carattere per carattere;
- visualizzarla con un solo accesso (utilizzando una sola istruzione printf);
- contare il numero di spazi contenuti in essa.*/
int main(int argc, char *argv[])
{char*P="pippo\0";
char*P2=P;
int lung,dim=0;
system("CLS");
lung=1;
while(P2!="\0")
{P2++;
lung++;
};
dim=sizeof(char)*lung;
printf("La stringa e' lunga %d byte\n",dim);
printf("La stringa ha %d caratteri significativi\n",dim-1);
P2=P;
while(P2!="\0")
{printf("%s ",P2);
P2++;
};
printf("\n%s\n",P);
P2=P; int Nspazi=0;
while(P2!="\0")
{if(P2==" "){Nspazi++;};
P2++;
};
printf("%d\n",Nspazi);
system("PAUSE");
return 0;
}
Grazie a tutti
n.b: le consegne sono nei commenti ad inizio codice