Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [C] Puntatori

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25

    [C] Puntatori

    Ciao a tutti,
    ho il seguente problema con i puntatori in C:
    in argv[1] ho il puntatore ad un array di stringhe (char**), e dovrei ricavarmi il valore, quindi l'array.
    Ricordo che int main(int argc, char** argv).
    Ho provato sia con &argv[1] che con *argv[1] ma essendo argv[1] una stringa "0x92ae008", non riesco a fare il cast ed a ricavarmi il valore.
    Grazie in anticipo!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ho capito niente ...

    argv[1] è il puntatore ad una stringa ... che devi farci? Devi visualizzare la stringa?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25
    scusami, mi sono espresso male.
    argv[1] contiene una stringa che mi indica la locazione in memoria di un array di stringhe.
    Se eseguo la printf("%s", argv [1]), mi stampa il valore "0x92ae008". Mi servirebbe recuperare l'array mediante questo indirizzo

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora è un'altra storia ... devi prima convertire da stringa ad intero senza segno ... Usa la funzione strtoul

    codice:
    char **p = (char **)strtoul(argv[1], NULL, 0);

    per avere il puntatore p
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25
    ok grazie mille! è proprio questo il metodo che cercavo!
    ho provato ad usarlo come mi hai detto ma mi da errore di segmentation fault...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da fede0693 Visualizza il messaggio
    ok grazie mille! è proprio questo il metodo che cercavo!
    ho provato ad usarlo come mi hai detto ma mi da errore di segmentation fault...
    con quella funzione ottieni il puntatore a partire dalla stringa. Come lo usi e se è valido è un'altra storia. Poi guarda che i puntatori sono validi all'interno di un processo specifico. Dicci esattamente cosa intendi fare perché mi sa che non lo stai facendo correttamente...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25
    LoL, allora mi sa che dovrò per forza utilizzare una memoria condivisa per leggere uno stesso array in più processi...credevo di by-passare la shmem mediante l'uso dei puntatori e invece... provo ad usare una memoria condivisa e ti faccio sapere

    praticamente nel file1.c ho la dichiarazione e l'inizializzazione di char** x allocata dinamicamente con malloc(...) e devo poter andare a leggere nel file2.c l'array x.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se solo avessi chiesto prima...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25
    ok risolto! grazie mille

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.