[問題] struct內的指標記憶體釋放
程式碼:
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<Windows.h>
using namespace std;
typedef struct stest
{
LPSTR szStr;
}test,*lptest;
int main()
{
lptest a=new test;
a->szStr=new CHAR[MAX_PATH];
wsprintf(a->szStr,"123");
lptest b=new test;
b->szStr=a->szStr;
delete a;
cout<<b->szStr;
system("pause");
}
預期結果:
記憶體錯誤
問題:
當我delete a的時候a的szStr是不是沒有跟著被釋放掉壓??
如果是的話有沒有辦法在delete a的時候把裡面的指標一起釋放掉??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 113.61.160.43
→
03/08 00:11, , 1F
03/08 00:11, 1F
→
03/08 00:13, , 2F
03/08 00:13, 2F
→
03/08 00:27, , 3F
03/08 00:27, 3F
→
03/08 00:29, , 4F
03/08 00:29, 4F
推
03/08 00:42, , 5F
03/08 00:42, 5F
→
03/08 00:58, , 6F
03/08 00:58, 6F
→
03/08 02:01, , 7F
03/08 02:01, 7F
推
03/08 16:15, , 8F
03/08 16:15, 8F
→
03/08 16:16, , 9F
03/08 16:16, 9F
推
03/09 00:12, , 10F
03/09 00:12, 10F
→
03/09 00:12, , 11F
03/09 00:12, 11F
推
03/09 01:32, , 12F
03/09 01:32, 12F
→
03/09 01:32, , 13F
03/09 01:32, 13F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章