Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    91

    [C] dubbi sulla sintassi

    ciao a tutti ho un dubbio riguardo la sintassi del C

    qual'è la differenza tra :

    codice:
    char * p = {"uno" ,"due"} ;  
    char *p [] = {"uno" , "due"}  ;
    
    
    int i [] = {1,8} ;
    int i = {1,8} ;

    ??


    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    char *p...puntatore a carattere-->può rappresentare un array
    char *p[]...puntatore ad array-->matrice

    int i[] {1,8}...vettore di interi
    int i{1,8} non ha senso

    P.s. Il primo assegnamento non è valido

    Ma la sai la differenza fra array e scalari?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    91
    ciao grazie della risposta ! anche secondo me la prima e la quarta sono senza senso , ma vuoi un po perchè non uso il C da tempo , vuoi perchè gcc non mi dava errori di compilazione , ci sono cascato!


    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da Marco1995
    char *p[]...puntatore ad array-->matrice
    No, è un array di puntatori.
    effeffe

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    91
    scusate , ma stiamo facendo un po di confusione ; quello di sopra è un vettore di puntatori , ma allora perchè

    codice:
    int main  (int argc, char *argv[]) // sto prendendo un vettore di puntatori in realtà
    {
    int i = 0 ; 
    char *oArgv [argc] ;
    
    
    for (i = 1 ; i < argc -1 ;i++)
    {
    strcpy (oArgv[i],argv[i]); //errore
    }
    ..questo è un errore di segmentazione di memoria ??????

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    91
    scusate il doppio post

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Perché da nessuna parte stai allocando memoria per oArgv...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8

    Moderazione

    Per inciso, ti ricordo che il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione. Per questa volta correggo io, in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    No, è un array di puntatori.
    Certo ma facendo:
    codice:
    int *prova[10];
        int m;
        for (m=0;m<10;m++)
           prova[m] = (int*)calloc(2,sizeof(int));
    puoi implementare una matrice

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da Marco1995
    Certo ma facendo:
    codice:
    int *prova[10];
        int m;
        for (m=0;m<10;m++)
           prova[m] = (int*)calloc(2,sizeof(int));
    puoi implementare una matrice
    Certamente, non ho detto il contrario, ho solo fatto notare che non è un puntatore ad array ma un array di puntatori (sono due cose completamente diverse).
    effeffe

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 © 2026 vBulletin Solutions, Inc. All rights reserved.