在GDB我得到:赛格故障(什么是错,strcpy的)
(gdb) backtrace 0 0xb7d91544 in strcpy() from /lib/libc.so.6 1 0x08048982 in ISBN::ISBN(char const*, ISBNPrefix&)() 2 0x08048d4a in main() (gdb)
从这个代码:
ISBN::ISBN(const char* str, ISBNPrefix& list) {
if(isValid(str)) {
isSet = true;
sprintf(*isbnStr,"%s",str);
}
}
究竟会造成什么呢?
isbnStr在头创建:
class ISBN
{
...
char* isbnStr[11];
...
任何想法什么我可以做这里造成这种赛格故障?
呼叫在主要是:
ISBN* isbn = new ISBN("7999999008",*prefix);
根据维基百科,2007年及以后分配的ISBN有13位数字,而不是10个。 – 2011-03-05 03:41:04
谢谢,该计划一次将处理100条记录,我还没有计划接受新的ISBN ,但很高兴知道我是否扩大了这一点。 – 2011-03-05 03:44:12