#include <stdio.h>

void x2(int* pData)
{
  *pData = *pData * 2;
}
 
int main()
{
  // 最後の 0 が無いと強制終了になる。
  // コンパイラのバグと思われる。
  short data[] = { 100, 200, 300, 400, 500, 0 };
 
  for(int i = 0; i < 5; ++ i) {
 
    short* pData = &data[i];
 
    // short から int へのキャストなので絶対安全
    x2((int*) pData);
 
    printf("%d ", *pData);
  }
 
  return 0;
}