的指針內釋放內存我有這樣的結構結構
typedef struct Rectangle{
char *name;
int size;
}RCG;
typedef struct Shapes{
RCG *rectangle;
}SHP;
這裏是礦我動態用20分配的RCG的問題;
SHP shp;
shp.rectangle = (RCG*)malloc(sizeof(RCG *) * 20)
還將內存分配給指針內的矩形名稱;
shp.rectangle[0].name = malloc(10*sizeof(char));
shp.rectangle[0].name = "big";
我該如何釋放名稱? 我所做的是
free(shp.rectangle[0].name);
它給我的錯誤 「堆可能已損壞」
我使用Visual Studio 2010
我假設你想分配20個矩形的內存;該代碼將是'shp.rectangle =(RCG *)malloc(sizeof(RCG)* 20)'。您的原始代碼保留20個_pointers_的空間('type *'是指向類型的指針)。 –