[問題] 關於struct的free()
最近在練習用動態配置記憶體的東西,不過配合struct使
用的話好像會怪怪的..
底下是我寫的程式,在struct中使用了兩個char*,所以就
分別配置了兩個動態記憶體給它們用,不過在最後用完後
的free部份,不知道為什都會當掉,如果只free一個就不
會?
請問一下,這樣用是不是有錯呢?
#include <iostream.h>
#include <stdlib.h>
struct per
{
char *name;
char *id;
};
void main()
{
struct per p;
p.id=(char *)malloc(sizeof(char));
p.name=(char *)malloc(sizeof(char));
cin >> p.id >> p.name;
cout << p.id << " "<<p.name << endl;
free(p.id);
free(p.name);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.117.77
→
04/26 15:26, , 1F
04/26 15:26, 1F
→
04/26 15:26, , 2F
04/26 15:26, 2F
→
04/26 15:27, , 3F
04/26 15:27, 3F
→
04/26 15:28, , 4F
04/26 15:28, 4F
→
04/26 15:31, , 5F
04/26 15:31, 5F
→
04/26 15:31, , 6F
04/26 15:31, 6F
→
04/26 15:31, , 7F
04/26 15:31, 7F
→
04/26 15:32, , 8F
04/26 15:32, 8F
→
04/26 15:36, , 9F
04/26 15:36, 9F
→
04/26 15:37, , 10F
04/26 15:37, 10F
→
04/26 15:37, , 11F
04/26 15:37, 11F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章