icc (intel compiler classic)から2024年リリースのintel oneapi に入っているicxに移行したとき、コンパイルはできるものの、実行すると変な挙動をしたので、そのメモ。
C99では、多次元配列の渡し方として、
void function(int size1, int size2, double matrix[size1][size2]);
のような実装が認められている。iccでは動いていたが、icxに切り替えるとうまくいかなかった。
icxではC99の機能をすべて実装してあるわけではないのかもしれない…??
配列は基本的にmallocなどで動的確保して用意し、渡すのが安全なのかも…?
void function(double **matrix, int size1, int size2);
みたいな感じで。