#includeこのプログラムを実行すると segmentation fault エラーが出ます. 書き込みができない 0 番地からのメモリにデータを書き込もうとしているからです.int main() { int *a; int i; a=0; for (i=0; i<200; i++) a[i]=i; for (i=0; i<200; i++) printf("%d ",a[i]); }
double mypower(double x,double i) { double s; s = exp(i*log(x)); return(s); }は x が負の時は nan となります. $|x|^i$ を計算するには
double mypower(double x,double i) { double s; if (x < 0) x = -x; s = exp(i*log(x)); return(s); }
ulimit -sと入力して調べることができます(キロbytes). 制限を外すには
ulimit -s unlimitedとしますが, この場合 stack を食い尽くしてシステムを暴走させる危険もあるので たとえば
ulimit -s 20000などと必要なサイズにすると安全でしょう.