|
명령어중 delete 와 delete[] 가 있습니다.
배별을 delete 할때 delete[] 를 사용하게 되어있습니다.
delete[] 에 delete[n+1] 로 사이즈를 넣어주는건
c++2.0 이후로 없어졌다고 help에 나와있군요.
실제로 컴파일해보니
[C++ Warning] Unit1.cpp(23): W8016 Array size for 'delete' ignored
라고 친절히 알려주는군요
그러므로
delete[] v; 이렇게사용하면 되겠군요...
김경래 님이 쓰신 글 :
: 생성자는 지금까지 마니 써봐서 별 문제가 없는데요
: 소멸자는 요번에 처음 써봤네요
: ~Array() {delete [n+1]v;}이런식으로 써놯떠라구요
: 음.. 그러니까 소멸자 쓰는 형식을 정확하게 모르겠어요
: 보통 배열은 v[n+1]이렇게 쓰는건줄알고있는데요
: 소멸자안에 있는것은 [n+1]v<- 이렇게 써져있네요 그래서 자리를 바꿔봤더니--;;
: 에러가 나더군요 ㅡㅡ;
: 그럼 즐거운 하루되시구요
:
: 고수님들 부탁드립니다.
: #include <stdio.h>
:
: class Array {
: int *v;
: int n;
: public:
: Array(int s) {n=s;v=new int[n+1];}
: ~Array() {delete [n+1]v;}
: int &operator() (int);
: };
: int& Array ::operator () (int i)
: {
: int *dumy=new int;
: if(0<=i&&i<=n)
: return(v[i]);
: else{
: printf("%d is out of range\n",i);
: return(*dumy);
: }
: }
: void main(void)
: {
: Array a(10),b(10);
: a(5)=10; b(5)=20;
: a(10)=a(5)+b(5);
: a(11)=a(10);
: printf("%d %d %d\n",a(5),b(5),a(10));
: }
:
:
|