Ho questo piccolo programma che ha lo scopo di convertire da minuscolo a maiuscolo
in due differenti modi. Il problema è che quando si arriva all'istruzione *str = toupper( *str ); avviene un errore di segmentazione.
L'output è questo:codice:#include<stdio.h> int main() { char vet[100] = "Hello, come va?"; char *str = "Hello, come va?"; int i = 0; printf("La dim di vet è %d\nLa dim di str è %d\n", sizeof(vet[0]), sizeof(*str) ); while( vet[i] != '\0' ) { vet[i] = toupper( vet[i] ); i++; } printf("Vet in maiuscolo: %s\n", vet ); while( *str != '\0' ) { *str = toupper( *str ); ++str; } printf("str in maiuscolo: %s\n", str ); }
Perché mi da "Segmentation fault"?codice:La dim di vet è 1 La dim di str è 1 Vet in maiuscolo: HELLO, COME VA? Segmentation fault
P.S. Può essere irrilevante, ma uso come compilatore gcc.

Rispondi quotando