[急]函数参数传递问题
我写了一个循环
int argc=5;
char *argv[]={"....","......}
for(n=0;n<100;n++)
imageTransform(argc,argv,n,dstImg);
第一次执行没有问题,从第二次开始在函数里的argv变成了只有一个字符串,感觉非常奇怪,各位有解决方法吗?谢谢!!!!
[解决办法]
从第二次开始在函数里的argv变成了只有一个字符串
如果你没犯内存方面的低级错误的话。那么最大可能是你把数组指针当做参数传递了。
在c/c++里,数组指针在做为参数传递时为退化为指针。
所以,字串数组在函数里会变成字符串。
解决办法很多,最简单的就是把数组声明为static的。
[解决办法]
[解决办法]
数组指针在做为参数传递时为退化为指针,
但是依然可以正常访问的;
因为你的这个退化了的指针所指向的数据结构是符合“数组”的。
所以,问题应该是argv指针内部结构被imageTransform()函数内部修改了,不再符合数组结构,所以第一次后就不再正常了。
建议楼主把二维数组完全搞透,或者,降低一个维度传参,就可以避免这个问题。