【问题解决】 某大神说:假设size=10,那么char **strNumbers=(char**)(new int[size]),strNumbers指向分配区域大小为10*4=40。如果地址值是32位,这个strNumbers[i]读取正常;但是地址值是64位时,strNumber读到i=5时就会发生地址越界错误。内存地址是32位时,指针大小就是4个字节;内存地址是64位时,指针大小是8个字节。 而我的VS2013用的是win32控制台应用程序。 牛客网看来是64位的咯。 改成:char **strNumbers = (char**)(new long[size]);  或者:char **strNumbers=new char*[size]; 或者:char* strNumbers[1000]; 都可以通过。 不过,以后还是用string类型省心,指针太容易出错了。
点赞 评论
牛客网
牛客企业服务