Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    [C] subscripted value is neither array nor pointer

    Ho questo main ma quando lo compilo mi dice:
    on line 24: subscripted value is neither array nor pointer
    La linea 24 sarebbe quella evidenziata in rosso....

    grazie a chi mi aiuterà
    codice:
    int main()
    {
      int *m;
      int i, j, n;
    
        printf("Inserisci la dimensione n: ");
        scanf("%d", &n);
       
        if (!(m = (int *)malloc(n*n*sizeof(int))))
        abort(); 
    
        for(i=0; i<n; ++i)
        for(j=0; j<n; ++j)
        {
           printf("Inserisci il valore dell'elemento (%d,%d): ", i+1, j+1);
           scanf("%d", &m[i][j]);
        }
           printf("Determinante = %d \n", det(m,n,0));
           return 0;
    }

  2. #2

    Re: [C] subscripted value is neither array nor pointer

    Originariamente inviato da Metallica
    Ho questo main ma quando lo compilo mi dice:
    on line 24: subscripted value is neither array nor pointer
    La linea 24 sarebbe quella evidenziata in rosso....

    grazie a chi mi aiuterà
    codice:
    int main()
    {
      int **m;
      int i, j, n;
    
        printf("Inserisci la dimensione n: ");
        scanf("%d", &n);
       
        if (!(m = (int *)malloc(n*n*sizeof(int))))
        abort(); 
    
        for(i=0; i<n; ++i)
        for(j=0; j<n; ++j)
        {
           printf("Inserisci il valore dell'elemento (%d,%d): ", i+1, j+1);
           scanf("%d", &m[i][j]);
        }
           printf("Determinante = %d \n", det(m,n,0));
           return 0;
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    grazie

  4. #4
    penso che l'errore sia
    (int **)malloc
    se ritorna una matrice..
    non ho tempo di controllare adesso scappo..

  5. #5

    Risolto

    Hai dichiariato la tua variabile mat kome un semplice puntatore a int.
    L'allocazione di memoria è troppo banale, perchè così nn allochi spazio per una matrice ma solo un vettore n*n.


    Cmq questo ragionamento è valido se programmi sotto i linguaggi assembler, questo perchè le matrici in memoria non sono altro ke locazioni di memoria adiacenti e per spostarsi da un a locazione all'altra bisogna sommare 4(x processori a 32 bit) al tuo indice di scorrimento matrice e basta.
    :metallica
    DD

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.