1
これはプリミティブなルートを見つけるためにコンパイルしようとしていたコードです...しかし、それは私にエラーを与えます。数字の基本的なルーツを見つける方法
倍増するvoid *型からラインdouble *factors=malloc(sizeof(double)*q-2);
//エラー、無効な変換では、ここで
int isPrimitive (int q, int a) {
int i,z;
double k,s;
s=1;
i=0;
double *factors=malloc(sizeof(double)*q-2);
while (s>0 && i<q-2) {
k=pow(a,i);
s=k-(q*floor(k/q));
for (z=0;z<(sizeof(*factors)/sizeof(factors[0]));z++) {
if (factors[z]==s) {
return 0;
}
}
factors[i]=s;
i++;
}
*付属しています。
どのコンパイラを使用していますか? (sizeof(double)* q-2'とはsizeof(double)*(q-2)の意味ですか? – huon
CまたはC++コンパイラでコンパイルしますか?エラーメッセージは後者を示します。 – jpalecek
'double * factors =(double *)malloc(...);' ...のように、 'malloc()'が返す 'void *'をキャストする必要があります。 – hroptatyr