编译连接没有任何问题 运行时报
Run-Time Check Failure #3 - The variable 'addrf' is being used without being initialized.
osip_message_t *invite=NULL; eXosip_lock();
int ret = eXosip_call_build_initial_invite (&invite, strFrom,strTo, NULL, NULL);
eXosip_unlock(); if (ret<0)
{
return -1;
} if(pszSDP!=0&&*pszSDP!=0)
{
osip_message_set_body (invite, pszSDP, strlen(pszSDP));
osip_message_set_content_type (invite, "application/sdp");
}
就是红色的这一行 我的程序中根本就没有 addrf 这个变量, 怎么报这个堆栈检查错误呢,郁闷呀.
Run-Time Check Failure #3 - The variable 'addrf' is being used without being initialized.
osip_message_t *invite=NULL; eXosip_lock();
int ret = eXosip_call_build_initial_invite (&invite, strFrom,strTo, NULL, NULL);
eXosip_unlock(); if (ret<0)
{
return -1;
} if(pszSDP!=0&&*pszSDP!=0)
{
osip_message_set_body (invite, pszSDP, strlen(pszSDP));
osip_message_set_content_type (invite, "application/sdp");
}
就是红色的这一行 我的程序中根本就没有 addrf 这个变量, 怎么报这个堆栈检查错误呢,郁闷呀.
int ret = 0;// 有可能在有些地方对 str 的操作超出了str的大小,导致一些变量或函数堆栈内存被覆盖。
memset( str, 0, 1000 );
或者 xxfunc( str ); xxfunc 中对str的操作超过了指定的内存界限,却还在当前应用程序可访问的范围内。你以前的编译器可以用,而现在不可用,以及在DEBUG版本中可用,RELEASE中不可用,应该是一些变量没有初始化赋值导致的。
不同的编译器对未赋值变量初始化不一样。
你的 invite 指针初始化为NULL,没有分配内存
然后你又在 函数里对 invite 做 取地址操作,不错才怪
那你要stepinto进去调试了
char *a;
char &b=*a;
编译通过运行时报你说的那个错误。看一下引用和指针的用法吧 。我才你可能是引用赋空值了。