char ServerName[128];
ZeroMemory(ServerName,sizeof(ServerName));
_snprintf_s(ServerName,sizeof(ServerName)-1,"192.168.10.1:3000");
//char *ServerName = "192.168.10.1:3000";
上面的代码原本是注释后面的。
我要将ServerName传到另一个函数中再解析成IP和端口号
而在解析函数中使用的是指针来寻找:的位置,截取后面的字节。
if (!(serverName))
//date not enough
return FALSE;
char *server_name = NULL;
char *p;
int port;
server_name = serverName;
if (server_name && (p = strchr(server_name, ':')) != NULL) {
*p++ = 0;
port = atoi(p);
在这里就会在运行中出现指针访问了非法的地址二中断
原因是第一段程序注释后的字符串是敞亮字符串是不能被修改的。故会在*p++处出现错误
所以 就改成了 第一段程序注释之上的代码 之后一切都OK。