很早之前的问题了,今天记录一下。
错误代码:
char a[s.length()];
因为代码中s.length()不是一个常数,需要运行时才能确定分配内存的大小。DEV-C++使用的编译器是GCC,它允许使用变量作为数组的长度定义数组。而VC的编译器不是GCC,它不允许这样做。
因此将代码修改为:
//char a[s.length()];
char* a = new char[s.length()];
并在使用完毕后释放内存:
delete[]a;
a = NULL;