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:
codice:
int main(){
int k;
k = ehi();
printf("%d" , k);
return 0;
e mi da' segmentation faulte! ma non capisco il perche'!!!
ciao grazie