View Full Version : [c]errore
emiliano30
20-02-2005, 12:08
chi sa dirmi cosa indica questo messaggio di errore?
subscripted value is neither array nor pointer
void Matr(int rand){
srand(time(NULL));
//ciclo che riempie random la matrice
int i,j;
for (i=0;i<N;i++)
for (j=0;j<N;j++){
Matr[i][j] = 1+rand()%10;//qui indica l'errore
}
return 0;
dato che si tratta di una funzione che riempie rand una matrice che parametri devo passargli nel prototipo?:confused:
non so cosa voglia dire il messaggio, ma probabilmente si riferisce allo stesso errore che ho notato io: il parametro "rand" ha lo stesso nome della funzione standard rand(), e quindi (dal momento che il parametro ha la precdenza sulla funzione), il compilatore crede che tu stia utilizzando un parametro come se fosse una funzione (a un certo punto hai chiamato rand()). use semplicemente un nome diverso per il parametro rand.
Fenomeno85
20-02-2005, 14:18
come ti ha già detto non riesce il compilatore a interpretare quando è la variabile rand o la funzione rand.
La puoi dichiarare però la matrice con il nome rand e fare così:
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
#define N 10
int val (){
return 1+rand()%10;
}
void Matr(int rand[][N]){
srand(time(NULL));
//ciclo che riempie random la matrice
int i,j;
for (i=0;i<N;i++){
for (j=0;j<N;j++){
rand[i][j] = val();
}
}
}
void see (int rand[][N]){
for (int i=0;i<N;i++){
for (int j=0;j<N;j++){
printf ("%d\t",rand[i][j]);
}
printf ("\n");
}
}
int main (void){
int rand [N][N];
Matr (rand);
see (rand);
system ("PAUSE");
return (0);
}
altra cosa la matrice che te usavi non era dichiarata.
~ Sempre E Solo Lei ~§~
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.