9/25/2008

tricky skill (1) in C

struct rumble {
  char c[1];
};

struct rumble *p = (struct rumble*) malloc(sizeof(struct rumble) + 5);
在C裡 有一個技巧就是在struct最後宣告一個單一元素的陣列
於是在malloc時就能擁有可變大小的struct rumble了

當然這個技巧也能用在C++ 但這會與compiler有關
因為雖然宣告在最後 compile時可能會產生額外的資料在最尾端

沒有留言: