|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2013
Messaggi: 46
|
[C] stampa matrice attraverso puntatore
Ragazzi ma è tutto corretto? Non capisco perchè non va... per voi ho tagliato le parti inutili, ho ridotto all'osso la funzione per evidenziare la dichiarazione della matrice, del puntatore e il prototipo... Forse sbaglio ad indicare l'imput?
void stampa_campo (int *campoPtr); #define SIZE 24 int main () { char campo[SIZE][SIZE] = {'-'}; //inizializzo tutti i caratteri della matrice col segno '-' int *campoPtr; campoPtr = &campo; stampa_campo (&campo); } void stampa_campo (int *campoPtr) { int x = 0; int y = 0; int indice = 0; while (indice < SIZE) { printf ("%3d", indice); indice++; } puts (""); while (x < SIZE) { while (y < SIZE) { printf ("%3c", campo[x][y]); y++; } x++; } } Ultima modifica di Giupoz : 13-12-2013 alle 19:11. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3972
|
poi tra l'altro ho dei dubbi che si inizializzi in quella maniera li...
ma questa operazione: Codice:
campoPtr = &campo; in sostanza cosa dovrebbe fare sto programma esattamente ? |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2013
Messaggi: 46
|
E' un gioco. Ho bisogno di richiamare una funzione nel main che mi stampi il campo (una matrice che viene modificata dall'utente).
La matrice viene modificata di continuo, volevo stamparla attraverso un puntatore, o mi conviene passare direttamente la matrice nella funzione? uffa questi puntatori non li sto capendo molto Ultima modifica di Giupoz : 14-12-2013 alle 16:20. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3972
|
non è molto comodo passare un **pointer a una funzione
dato che ne determini già la dimensione forse è meglio che la dichiari statica globale ps: per inizializzarla usa memset |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Parti dai dati e dai tipi che ti interessano/servono - attiva i warnings al compilatore e prova
Codice:
#include <stdio.h>
#define SIZE 24
int main ()
{
char campo[SIZE][SIZE] = { '-' }; /* ! */
size_t i, j;
i = 0;
j = 0;
while (i < SIZE) {
while (j < SIZE) {
if (campo[i][j] == '-')
printf("%3c", campo[i][j]);
else /* ! */
printf("%3c", '.');
j++;
}
puts("");
j = 0; /* ! */
i++;
}
return 0;
}
Lavora in modo incrementale, non per tentativi. Ultima modifica di van9 : 17-12-2013 alle 16:07. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:40.



















