|
|
发表于 2004-4-24 00:12:37
|
显示全部楼层
这是因为 *s 是一个指向\"abcdefg\"(看作内存的一个常量)的指针,根本不是什么“动态字符数组”!
2 w7 M" o/ c/ J5 c3 V' }1 w) g% t( H& G
delete 只能用于删除使用 new 分配的内存。
! P o) {( Q8 E/ h
! \& v/ O/ n0 Q, n如:
! `6 x6 D( T9 _, I) F1 v! D# KCUserInfo* pUserInfo = new CUserInfo;0 D( m. B9 J( E6 A; ^
...0 L3 Y2 q* ^1 o3 ?
delete pUserInfo;; [5 z6 U# N& r
8 t( x- |! a& i. a3 Y9 q- o1 n5 |
动态数组应该是这样的:
) a5 M/ u# \ M* r
$ {, M* |# Q* Ochar* pstr = new char[8];
2 @" s+ V. b- P6 H4 J3 J; astrcpy( pstr, \"abcdefg\" );
( ]& O5 J. C D T$ u. Udelete[] pstr; |
|