ciao!
non riesco a capire quando mi viene lanciato un segmentation fault
il codice del programma e' questo:
codice:#include <stdio.h> #include <stdlib.h> #include <mysql/mysql.h> #define CTRLCODC "SELECT * FROM Corsi Where id_Corso = '%s';" const char* host = "localhost"; // host di connessione const char* database = "SIS"; // database di connessione const char* db_user = "matteo"; // nome utente per la connessione const char* db_pass = "Esedra#84"; // password non cifrata #define INSSTU "INSERT INTO `Studenti` ( `Matricola` , `Nome_S` , `Cognome_S` , `email_s` , `Telefono_S` , `Pin Uni` , `Codice Sms` , `Indirizzo` , `Abbonato` )VALUES ('505013', 'Michele', 'Trevi', 'ssss@gmail.com', '3402313133', '234312', '324153', 'via pino', '0'); " int collegmanetoDB(MYSQL * mysql ){ if (! mysql_init (mysql)) { printf ("Errore nella allocazione di memoria.\n"); return -1; } if (! mysql_real_connect (mysql, host, db_user, db_pass, "",0, NULL, 0)) { printf ("Errore nella connessione.\n"); return -2; } if (mysql_select_db (mysql, database)) { printf ("Errore nella selezione del database.\n"); return -3; } return 0; } int main () { MYSQL * mysql; int i = 0, j = 0 ; char c[10] ; char * query; char query1[100]; strcpy(c , "10001"); query = malloc ( 255 * strlen(INSSTU)); query = INSSTU; printf("%s\n" , query ); if(collegmanetoDB( mysql ) != 0){ /* printf("Errore di qualcosa!!%d" , err);*/ return -1; } // esegue la query if (mysql_query (mysql, query)) { printf("Errore nella query.\n"); printf("%s" , mysql_error (mysql)); mysql_close (mysql); return -1; } // chiude le risorse mysql_close (mysql); exit (EXIT_SUCCESS); return 0; }
e per adesso nessun problema!
ma se la funzione main la vado a chiamare "ehi" e la lancio da un main che si trova sempre nello stesso file
codice:
e mi da' segmentation faulte! ma non capisco il perche'!!!codice:int main(){ int k; k = ehi(); printf("%d" , k); return 0;
ciao grazie

Rispondi quotando