今天写了一个洗牌程序,调试了几次,一直报段错误??
最后终于发现问题所在:string cardsAfter[54] = {0};这句话错误!string数组不能用{0}的形式将整个对应的内存段设置成0
必须用 memset(cardsAfter,0,sizeof(string)*54)这种写法。
真是醉了!debug了20分钟!
BTW:{0}方法初始化数组可能出现移植性问题,即并不是所有编译器都能通吃。建议多多使用memeset更为保险,分析如下:
今天写了一个洗牌程序,调试了几次,一直报段错误??
最后终于发现问题所在:string cardsAfter[54] = {0};这句话错误!string数组不能用{0}的形式将整个对应的内存段设置成0
必须用 memset(cardsAfter,0,sizeof(string)*54)这种写法。
真是醉了!debug了20分钟!
BTW:{0}方法初始化数组可能出现移植性问题,即并不是所有编译器都能通吃。建议多多使用memeset更为保险,分析如下: