[问题] Reverse String with recursively

楼主: IhateOGC (我讨厌)   2019-03-11 18:45:55
开发平台(Platform): (Ex: Win10, Linux, ...)
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
http://tinyurl.com/y4hq4vfg
问题(Question):
submit
static int 无法初始化?
喂入的资料(Input):
static volatile int i = 0 ;
预期的正确结果(Expected Output):
Stdout:
init i
i1 = 0
i2 = 0
i1 = 1
i2 = 1
i1 = 2
错误结果(Wrong Output):i
Stdout:
runtime error: reference binding to null pointer of type 'struct value_type'
(stl_vector.h) - leet code spiral
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
void reverseString(vector<char>& s) {
static int i = 0 ;
static char *p = nullptr;
if( &s[0] != p )
{
p = &s[0];
i = 0;
cout << "init i " << endl;
}
cout << "i1 = " << i << endl;
if( i >= (s.size()/2) )
return;
cout << "i2 = " << i << endl;
swap( s[i] , s[s.size()-1-i]);
i++;
reverseString(s);
}
补充说明(Supplement):
我的i怎不会跑...
作者: CoNsTaR ((const *))   2019-03-11 20:57:00
因为 i 不会自己重置回 0 ?
楼主: IhateOGC (我讨厌)   2019-03-11 21:51:00
不会...xd
作者: kokal (细菌)   2019-03-11 22:47:00
看output是 s是NULL时,p=&s[0]发生错误

Links booklink

Contact Us: admin [ a t ] ucptt.com