Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    56

    [c] vettori a dimensione variabile

    mi date una mano vorrei portarne in stampa uno ma non segnala alcun errore

    codice:
    #include <stdio.h>
    int inserisci_dimensione_array(void);
    float inserisci_valori_array(void);
    int main()
    {
      int a=0;  //dimensione array
      a=inserisci_dimensione_array();
      float array[a];
      int c=0;
      for(c=0;c<=a-1;c++)
      {
         array[c]=inserisci_valori_array();
         }
         printf("%f",array[     ]);//UNO QUALSIASI
         getchar();
      return 0;
    }
    int inserisci_dimensione_array(void)
    {
          int w=0;
          printf("inserisci un numero intero per la dimensione dell'array   ");
          scanf("%d",&w);
          fflush(stdin);
          return w;
          }
    float inserisci_valori_array(void)
    {
          float b=0;
          printf("inserisci un numero con la virgola   ");
          scanf("%f",&b);
          fflush(stdin);
          }

  2. #2
    Vuoi stampare un elemento a caso?

    P.S.: i vettori a dimensioni dinamiche non si fanno così, devi usare la malloc.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    56
    credevo anch' io,ma poi ho dato uno sguardo a programmazione in c (c99) VLA variable-length array pag 180 esempio simile al mio
    afferma pure che principale restrizione è che le VLA non possono avere una durata di memorizzazione statica e impossibilità di avere un inizializzatore
    non so se ha attinenza .... non credo nel mio caso
    forse qulcuno ne ha sentito qualcosa?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il dimensionamento è corretto (per C99) anche se non mi piace affatto e non lo uso.

    Probabilmente usi DevC++ con mingw che permette questa caratteristica ... con altri compilatori non potresti ...

    A parte questo, mi sembra che nella funzione

    inserisci_valori_array

    manchi la

    return b;

    finale ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da jc74
    credevo anch' io,ma poi ho dato uno sguardo a programmazione in c (c99) VLA variable-length array pag 180 esempio simile al mio
    In C99 è corretto, ma è sconsigliabile comunque, poiché lo stack non è tanto, e l'uso di array allocati sullo stack a dimensione dinamica può favorire gli stack overflow.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.