|
发表于 2004-4-24 00:12:37
|
显示全部楼层
这是因为 *s 是一个指向\"abcdefg\"(看作内存的一个常量)的指针,根本不是什么“动态字符数组”!
4 j, Y) y6 S9 E$ s/ D5 V7 D7 Z) k6 n" U2 h" O
delete 只能用于删除使用 new 分配的内存。
d) B* T7 ?) x7 S+ w$ }. L' u! c# x9 b
如:
9 N3 a' i! P" q1 k. }7 R( D7 VCUserInfo* pUserInfo = new CUserInfo;( t8 u J( e Q* q# B% ^( D: f
...
3 X, S9 d8 q9 N- O* Bdelete pUserInfo;. r4 I! X1 _+ B; `: f
- e4 h& W `+ p4 `: `动态数组应该是这样的:
, X, r2 G4 T2 ^3 P. u, t; ^4 q& [% S7 \! b5 n/ n8 q J% k9 o
char* pstr = new char[8];
% M& Q# k( L/ c* r3 B+ c9 i' }strcpy( pstr, \"abcdefg\" );
8 n- P4 X4 e. I- K( [4 K) fdelete[] pstr; |
|