Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c++][principiante] Cosa non va in questo semplice codice?

    Codice PHP:
    #include <iostream>
    using namespace std;


    void splitta_stringa (char splittarsi[]);


    int main() {

        
    char contenuto[]="Prova riprova e controprova";
        
    cout << sizeof(contenuto) << endl;

        
    splitta_stringa (contenuto);

        
    system ("pause");
        return 
    0;
    }



    void splitta_stringa (char splittarsi[]) {

        
    cout << sizeof(splittarsi) << endl;


    Perchè prima di passare la variabile nella funzione la sua dimensione è 28 e dopo che è stata passata è 4?

  2. #2
    Se non specifichi le dimensioni di un array nel passaggio ad una funzione questo verrà passato come un puntatore al primo elemento dell'array; essendo la dimensione di un puntatore di 4 bytes (sulle piattaforme a 32 bit) l'output del tuo programma è corretto.
    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.