独立完成按位置删除的代码
//按位置删除 void dele_pos(node_p H,int pos) { if(H==NULL) { printf("入参为空\n"); return; } if(empty link (H)) { printf("表为空\n"); return; } //位置合理性检查 if(pos<=0||pos>H->data) { printf("位置不合理\n"); return; } node_p p = H; for(int i=0li<pos-1;i++>) { p = p->next; } node_p temp = p->next; p->next=p->next->next; free(temp); H->data--; }
求以下结构体的大小
#pragma pack(2) //指定两字节对齐
typedef struct
{
char x; //一个字节大小,直接对齐到结构体开始位置
struct A //struct是一个整体,包含short、int、char:2+8+1=11
{
short a; //short是两个字节大小,
int *b;//int通常是8字节,
char c;//char是1字节,
}p;
long b;//long通常是8字节,
}T;//char、struct、long=2+11+8=21,因为满足2字节对齐要求,需要是2的倍数 结果是 22
#pragma pack()