"number"構造体要素でdinamically行列を作成したいと思います。 "theNumber"を印刷しようとすると、プログラムはprintf関数から終了しません。 printf.私は間違った割り当てをしたことがありますか?構造体からCのフィールドをプリントできない
struct number {
int theNumber;
};
struct table {
struct number ** mem;
};
unsigned i;
struct table *createInstance(unsigned min) {
//flag1
struct table * someInstance = (struct table *) malloc(sizeof (struct table));
//flag2
if (someInstannce == NULL) {
return 0;
}
//flag3
someInstannce->mem = (struct number **) malloc((min + 1) * sizeof (struct number **));
//flag4
for (i = 0; i <= min; i++) {
someInstannce->mem[i] = (struct table *) calloc(5, sizeof (struct number *) + 1);
}
//flag5
for (i = 0; i <= min; i++) {
for (j = 0; j = 5; j++) {
printf("%d", someInstannce->mem[i][j].theNumber);
}
}
return someInstance;
}
これは厳密にCであるため、mallocの戻り値をキャストできません。 – sjsam
あなたは 'someInstance'と' someInstannce'を使用しています。これらのタイプミス、またはその名前の別の変数がありますか?このコードはあなたのコードのようなものですか?実際にはあなたのコードではありませんか? –
@sjsam: 'void *'を他のポインタにキャストすることは、標準ではallowe3dです。しかし、それは落胆します。 – Olaf