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

    [C] Windows mi da un errore

    Ok, rieccomi a rompervi le scatole.
    Nel programma (una finta shell) che posto qui sotto, il compilatore non trova problemi, ma dopo che ho inserito una stringa tramite scanf mi esce il classico messaggio di errore di Windows che mi chiede se voglio mandare la segnalazione. Dov'è l'errore?

    codice:
    #include <stdio.h>
    #include <string.h>
    
    char ver[] = "0.1.1 Alpha";
    char *toprint;
    char *line;
    
    int interpreta(char input[])
    {
    	if (strncmp(input, "put ", 4) == 0)
    	{
    		char *toprint = input + 4;
    		printf("%s\n", toprint);
    		return 1;
    	}
    	return 0;
    }
    
    int main()
    { // inizio funzione main
    	int exit = 0;
    	printf("RiShell %s by RiKI\n\n", ver); // stampo msg di benvenuto e ver
    	while (exit == 0)
    	{ // apertura while
    		printf(">> ");
    		scanf("%s\n", line);
    		interpreta(line);
    	} //chiusura while
    } // fine funzione main

  2. #2

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In C una stringa deve essere allocata.

    Non basta un puntatore come

    char *line;

    che è un "indirizzo" ma ci vuole lo "spazio" riservato alla stringa.
    Puoi allocarla staticamente, così

    char line[200];

    prevedendo 199 caratteri + il terminatore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Ah ho capito, 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.