- 注册时间
- 2004-12-25
- 最后登录
- 1970-1-1
|
最近编程序发现,LavaX3.1的地址传参很诡异!!!!
如果程序这样写:
void function(char &string[]){
}
void main(){
function(0x2000);//为方便先这样写
}
正常运行,可是在认证时出现问题!
在调试模式下如果是动态认证,直接报告错误,而静态人证则提示全平台都可以运行.
而在编译后再运行时,没有任何错误!!
而如果程序这样:
void function(char &string){
}
void main(){
function(0x2000);
}
调试是动态认证依然报错,静态认证没问题,
运行时都没问题.
假如这样:
void function(int &string){
string=0;
}
void main(){
function(0x2000);
}
若不加粉色的这一行,调试时动态认证报错,静态认证通过,运行时正常.
加粉色一行的时候,调试时动静态认证都报错,运行时动态认证报错,静态认证报错,提示地址是粉色一行的程序在编译后的地址.
我实在是搞不懂怎么回事,虽然认证报错但是这样类型的程序在LVM上能正常运行!
这样的报错是否影响不同的TC800?
因为包含这样传参的程序在一些TC800上正常运行,而另外的一些则出现死机.
Lee大哥来解释解释吧.
|
|