Release模式下使用静态变量会使程序运行不正常?
2006-11-24 14:14
381 查看
以下代码在Release模式下运行时会出错,
Debug模式下运行完全正常,
把代码中的"static int m_pSort[100]"改为"int m_pSort[100]",
Release模式下运行也能正常.
这下我就不能理解了,
为什么Release模式下使用static会使用程序无法正常运行?
请高手解答我心中的疑惑.
在VS2005下编辑运行就一点问题都没有了,
难道是编辑器问题?
void FastSort(int *pData,int nData){
int i,j,k;
int nStack,Stack_i,Stack_j;
static int m_pSort[100] = {0};
if(nData<2){
return;
}
m_pSort[0]=0;
m_pSort[1]=nData-1;
nStack=2;
while(nStack>=2){
i=m_pSort[nStack-2];
j=m_pSort[nStack-1];
nStack-=2;
Stack_i=i;Stack_j=j;
k=pData[i];
while(i!=j){
while(i!=j&&k>=pData[j])j--;
pData[i]=pData[j];
while(i!=j&&k<=pData[i])i++;
pData[j]=pData[i];
}
pData[i]=k;
if(i>Stack_i+1){
m_pSort[nStack]=Stack_i;m_pSort[nStack+1]=i-1;
nStack+=2;
}
if(i<Stack_j-1){
m_pSort[nStack]=i+1;m_pSort[nStack+1]=Stack_j;
nStack+=2;
}
if(nStack>=nData){
return;
}
if(nStack==0)
{
break;
}
}
}
int main(int argc, char* argv[])
{
int m[5]={4,2,9,0,1};
FastSort(m,5);
return 0;
}
Debug模式下运行完全正常,
把代码中的"static int m_pSort[100]"改为"int m_pSort[100]",
Release模式下运行也能正常.
这下我就不能理解了,
为什么Release模式下使用static会使用程序无法正常运行?
请高手解答我心中的疑惑.
在VS2005下编辑运行就一点问题都没有了,
难道是编辑器问题?
void FastSort(int *pData,int nData){
int i,j,k;
int nStack,Stack_i,Stack_j;
static int m_pSort[100] = {0};
if(nData<2){
return;
}
m_pSort[0]=0;
m_pSort[1]=nData-1;
nStack=2;
while(nStack>=2){
i=m_pSort[nStack-2];
j=m_pSort[nStack-1];
nStack-=2;
Stack_i=i;Stack_j=j;
k=pData[i];
while(i!=j){
while(i!=j&&k>=pData[j])j--;
pData[i]=pData[j];
while(i!=j&&k<=pData[i])i++;
pData[j]=pData[i];
}
pData[i]=k;
if(i>Stack_i+1){
m_pSort[nStack]=Stack_i;m_pSort[nStack+1]=i-1;
nStack+=2;
}
if(i<Stack_j-1){
m_pSort[nStack]=i+1;m_pSort[nStack+1]=Stack_j;
nStack+=2;
}
if(nStack>=nData){
return;
}
if(nStack==0)
{
break;
}
}
}
int main(int argc, char* argv[])
{
int m[5]={4,2,9,0,1};
FastSort(m,5);
return 0;
}
相关文章推荐
- Debug调试运行正常,但在Release模式下退出程序时报错
- 在运行程序时报错:"如果在 Code First 模式下使用,则使用 T4 模板为 Database First 和 Model First 开发生成的代码可能无法 正常运行。若要继续使用 Database First 或 Model First,请确保在执行应用程序的 config 文件中指 定 Entity Framework 连接字符串。若要将这些从 Database First 或 Mod
- Debug调试运行正常,但在Release模式下退出程序时报错
- VS运行程序正常,发布后查询中文不能正常使用
- NSLog 在debug模式下正常使用,在release模式下不可用
- debug版程序运行正常,release版程序运行出错
- 使用mysql-front的时候遇到显示:程序注册时间到期程序将被限制模式下运行
- 程序编译成release后,F5运行正常,但Ctrl+F5运行就出问题
- STM32使用DMA功能导致程序运行不正常
- 使用mysql的图形工具SQL-front时弹出提示:“程序注册时间到期 程序将被限制模式下运行”
- 解决 CListCtrl 中用GetColumn在debug下正常, Release模式程序崩溃的问题
- ubuntu-virtualbox安装与使用,运行win程序,无逢模式爽啊。。看图
- 【原】简述使用spark集群模式运行程序
- uwp应用在debug模式下运行正常,编译为release版本的时候抛出异常
- VC中DEBUG版本可以正常运行的程序有时无法在RELEASE版本下运行
- eclipse 下,使用正常模式可以运行,DEBUG模式就卡住的解决方案
- 【转】Android 当打开“开发者模式”中的“不保留活动”后,程序应当怎么保持正常运行
- Visual Studio 中使用Word、Excel等COM控件时如何配置服务器让程序正常运行?
- CLion,debug模式程序正常运行,run模式下出现停止运行
- 为什么VC中DEBUG版本可以正常运行的程序有时无法在RELEASE版本下正常运行