質問編集履歴
4
変更点の明記
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
**目的**
|
2
2
|
3次元配列を動的に作る関数を作成しようとしています。
|
3
3
|
mallocじゃなくてcallocを使うことで初期化を自動的にしてくれる事は理解できました。
|
4
|
-
しかし、「戻りでポインタからキャスト無しに整数を作成しています」、「代入で整数からキャスト無しにポインタを作成しています」が出て来て治すことができません。
|
4
|
+
しかし、「関数 ‘calloc’ へ渡す引数が少なすぎます」、「戻りでポインタからキャスト無しに整数を作成しています」、「代入で整数からキャスト無しにポインタを作成しています」が出て来て治すことができません。
|
5
5
|
この場合何がいけないのでしょうか。
|
6
|
+
※「関数 ‘calloc’ へ渡す引数が少なすぎます」は解決しました。ありがとうございます。
|
6
7
|
|
7
8
|
|
8
9
|
|
3
ていせい
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
**目的**
|
2
2
|
3次元配列を動的に作る関数を作成しようとしています。
|
3
3
|
mallocじゃなくてcallocを使うことで初期化を自動的にしてくれる事は理解できました。
|
4
|
-
しかし、
|
4
|
+
しかし、「戻りでポインタからキャスト無しに整数を作成しています」、「代入で整数からキャスト無しにポインタを作成しています」が出て来て治すことができません。
|
5
5
|
この場合何がいけないのでしょうか。
|
6
6
|
|
7
7
|
|
2
訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
**目的**
|
2
2
|
3次元配列を動的に作る関数を作成しようとしています。
|
3
3
|
mallocじゃなくてcallocを使うことで初期化を自動的にしてくれる事は理解できました。
|
4
|
-
しかし、「関数 ‘calloc’ へ渡す引数が少なすぎます」や「
|
4
|
+
しかし、~~「関数 ‘calloc’ へ渡す引数が少なすぎます」~~や「戻りでポインタからキャスト無しに整数を作成しています」、「代入で整数からキャスト無しにポインタを作成しています」が出て来て治すことができません。
|
5
5
|
この場合何がいけないのでしょうか。
|
6
6
|
|
7
7
|
|
1
callocの引数の要素数を変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -17,21 +17,21 @@
|
|
17
17
|
int j,k;
|
18
18
|
char ***image;
|
19
19
|
//image[nz][ny][nx]のうち'nz'を確保する
|
20
|
-
image=(char ***)calloc(sizeof(char **)*nz);
|
20
|
+
image=(char ***)calloc(nz,sizeof(char **)*nz);
|
21
21
|
if(image==NULL){
|
22
22
|
printf("memory allocation error\n");
|
23
23
|
exit(1);
|
24
24
|
}
|
25
25
|
for(k=0;k<nz;k++){
|
26
26
|
//image[nz][ny][nx]のうち'ny'を確保する
|
27
|
-
image[k]=(char **)calloc(sizeof(char *)*ny);
|
27
|
+
image[k]=(char **)calloc(ny,sizeof(char *)*ny);
|
28
28
|
if(image[k]==NULL){
|
29
29
|
printf("memory allocation error\n");
|
30
30
|
exit(1);
|
31
31
|
}
|
32
32
|
for(j=0;j<ny;j++){
|
33
33
|
//image[nz][ny][nx]のうち'nx'を確保する
|
34
|
-
image[k][j]=(char *)calloc(sizeof(char)*nx);
|
34
|
+
image[k][j]=(char *)calloc(nx,sizeof(char)*nx);
|
35
35
|
if(image[k][j]==NULL){
|
36
36
|
printf("memory allocation error\n");
|
37
37
|
exit(1);
|