Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [c++]

  1. #1

    [c++] problemi con array e stringhe

    ho questo peoblemino:
    char dato[50];
    strcpy(a.data, dato[0]);

    a.data invece fa parte di una struttura ed è un array di caratteri
    mi da questo errore il compilatore, probabilmente perchè non riesce a copiare una char normale_ in un array di caratteri
    "daylog.cpp": daylog.cpp error: invalid conversion from `char' to `const char*' at line 82


    avete qualche idea per fregarlo?
    my workgroup :sexpulp:
    http://www.promisestudios.net

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    26
    non è che nn riesce a fare il passaggio, è che gli argomenti della funzione strcpy sono dei const char*, praticamente puntatori a stringhe....tu li gli stai passando un carattere, se vuoi mettere un carattere in un altro, è sufficente un'assegnazione, ma strcpy serve a copiare stringhe, non caratteri...prova scrivendo:

    a.data[i]=dato[0];

    ricordati che scrivendo char dato[N] crei un puntatore ad un array di caratteri esattamente come se scrivessi char *dato, con la differenza che nel primo caso allochi la memoria in maniera statica, nel secondo devi chiamare malloc o new, per allocarla....

  3. #3
    sembra che funzioni (il compilatore non da problemi) senti non ho capito pero' perchè bisogna mettere a a.data le parentesi [] con dentro la i.

    che fa? forse me lo hai spiegato sotto ma non l'ho ben capito.

    thx
    my workgroup :sexpulp:
    http://www.promisestudios.net

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    26
    Allora...
    Tu hai detto che a.data è un array di caratteri, un array è sostanzialmente un puntatore alla tua memoria, che punta alla prima posizione di una serie di dati...

    quando tu scrivi:

    char dato[50];

    Il programma alloca in memoria 50 caratteri, e assegna al puntatore "dato" l'indirizzo del primo elemento. A questo punto però hai bisogno di un indice per far "spostare" il puntatore nell'elemento a cui ti riferisci, io ho messo la i per indicare un generico indice all'array. Devi comprendere bene la flessibilità degli array in C per poterla sfruttare appieno, studiati i puntatori, e vedrai che tutto sarà più chiaro....

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