[問題] dynamic 2d array
請教各位大大幾個觀念~
#include"string.h"
#include<iostream.h>
#pragma argsused
using namespace std;
int main(int argc, char* argv[])
{
char a[10],**pt,*ptr;
ptr=new char[10];
cout<<sizeof(*ptr)<<endl;
//sizeof內要填什麼才有辦法確認我的空間大小是char[10]?
pt=new char*[3];
for(int i=0;i<3;i++)
pt[i]=new char[5];
for(int i=0;i<3;i++)
cout<<"add:"<<(void*)pt[i]<<endl; //先show 每個array address
for(int i=0;i<3;i++)
strcpy(*(pt+i),"abc"); //預設pt[0~2]="abc"
cout<<endl<<endl;
for(int i=0;i<3;i++)
delete[] pt[i];
for(int i=0;i<3;i++)
cout<<(void*)pt[i]<<":"<<*(pt+i)<<endl; //砍掉空間後重新顯示內容
for(int i=0;i<3;i++)
strcpy(*(pt+i),"123"); //刪除空間後又重新寫入123
for(int i=0;i<3;i++)
cout<<(void*)pt[i]<<":"<<*(pt+i)<<endl;
delete[] pt; //出現錯誤
system("pause");
return 0;
}
結果:
1
add:14378936
add:14378952
add:14378968
14378936:abc
14378952:abc
14378968:abc
14378936:*%&(亂碼)
14378952:abc
14378968:abc
14378936:123
14378952:123
14378968:123
問題1:cout<<sizeof(*ptr)<<endl;
sizeof內要填什麼才有辦法確認我的空間大小是char[10]?或者沒辦法這樣使用
問題2:根據爬文結果 for(int i=0;i<3;i++) delete[] pt[i];
砍掉空間後依然可以show值(14378952:abc) 只是new的空間被砍而已
但我後面又做了寫入123的動作為什麼還可以正常秀出結果?
反而是在delete[] pt;這一行出現error
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.210.112.66
推
11/12 12:23, , 1F
11/12 12:23, 1F
→
11/12 12:24, , 2F
11/12 12:24, 2F
→
11/12 12:25, , 3F
11/12 12:25, 3F
→
11/12 12:25, , 4F
11/12 12:25, 4F
→
11/12 12:26, , 5F
11/12 12:26, 5F
→
11/12 12:26, , 6F
11/12 12:26, 6F
→
11/12 12:27, , 7F
11/12 12:27, 7F
→
11/12 12:27, , 8F
11/12 12:27, 8F
推
11/12 12:29, , 9F
11/12 12:29, 9F
→
11/12 12:29, , 10F
11/12 12:29, 10F
→
11/12 12:30, , 11F
11/12 12:30, 11F
推
11/12 13:45, , 12F
11/12 13:45, 12F
→
11/12 13:53, , 13F
11/12 13:53, 13F
→
11/12 14:02, , 14F
11/12 14:02, 14F
→
11/12 14:02, , 15F
11/12 14:02, 15F
→
11/12 14:04, , 16F
11/12 14:04, 16F
→
11/12 14:05, , 17F
11/12 14:05, 17F
推
11/12 14:07, , 18F
11/12 14:07, 18F
推
11/12 14:07, , 19F
11/12 14:07, 19F
→
11/12 14:08, , 20F
11/12 14:08, 20F
→
11/12 14:09, , 21F
11/12 14:09, 21F
→
11/12 14:09, , 22F
11/12 14:09, 22F
→
11/12 14:09, , 23F
11/12 14:09, 23F
→
11/12 14:11, , 24F
11/12 14:11, 24F
→
11/12 15:23, , 25F
11/12 15:23, 25F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章