이거 잘못된 건가여?(C 관련)
본문
void db_connect(void)< br>
{< br>
char hostname, userid, passwd, dbname;< br>
< br>
&hostname="localhost"; : invalid lvalue in assignment(에러) < br>
&userid="ggamter"; : invalid lvalue in assignment(에러)< br>
&passwd="3693690"; : invalid lvalue in assignment(에러)< br>
&dbname="ggamter"; : invalid lvalue in assignment(에러)< br>
< br>
if (!mysql_connect(&mysql, &hostname, &userid, &passwd));< br>
< br>
//if (!mysql_connect(&mysql,"localhost","ggamter" , "3693690")); < br>
<==원본입니다. 위의 변수정의를 사용하지 않고 바로 입력하면 잘되거덩요..< br>
< br>
//데이타베이스 접속 <br>
if (mysql_select_db(&mysql, &dbname));< br>
< br>
}
답변 1
^_^ PHP로 프로그램을 시작하셨나 보군요 <br>
C에서는 그런식으로 프로그램밍 하면 안됩니다. <br>
문자열은 C에서는 단순한 char형 배열이거든요. <br>
char 배열과 포인터에 대해 좀더 공부하셔야 될 듯 <br>
<br>
아래와 같이 수정하세용... <br>
<br>
해기님의 글 <br>
------------------------------------ <br>
#define MAX_STR 100 <br>
void db_connect(void) <br>
{ <br>
char hostname[MAX_STR], userid[MAX_STR], passwd[MAX_STR], dbname[MAX_STR]; <br>
<br>
strcpy(hostname, "localhost"); <br>
strcpy(userid, "ggamter"); <br>
strcpy(passwd, "3693690"); <br>
strcpy(dbname, "ggamter"); <br>
<br>
if (!mysql_connect(&mysql, hostname, userid, passwd)); <br>
<br>
//데이타베이스 접속 <br>
if (mysql_select_db(&mysql, dbname)); <br>
<br>
} <br>
------------------------------------ <br>
C에서는 그런식으로 프로그램밍 하면 안됩니다. <br>
문자열은 C에서는 단순한 char형 배열이거든요. <br>
char 배열과 포인터에 대해 좀더 공부하셔야 될 듯 <br>
<br>
아래와 같이 수정하세용... <br>
<br>
해기님의 글 <br>
------------------------------------ <br>
#define MAX_STR 100 <br>
void db_connect(void) <br>
{ <br>
char hostname[MAX_STR], userid[MAX_STR], passwd[MAX_STR], dbname[MAX_STR]; <br>
<br>
strcpy(hostname, "localhost"); <br>
strcpy(userid, "ggamter"); <br>
strcpy(passwd, "3693690"); <br>
strcpy(dbname, "ggamter"); <br>
<br>
if (!mysql_connect(&mysql, hostname, userid, passwd)); <br>
<br>
//데이타베이스 접속 <br>
if (mysql_select_db(&mysql, dbname)); <br>
<br>
} <br>
------------------------------------ <br>
답변을 작성하시기 전에 로그인 해주세요.