質問編集履歴

4

変更点の明記

2023/01/23 08:16

投稿

HYYH
HYYH

スコア16

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

ていせい

2023/01/23 08:01

投稿

HYYH
HYYH

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,7 +1,7 @@
1
1
  **目的**
2
2
  3次元配列を動的に作る関数を作成しようとしています。
3
3
  mallocじゃなくてcallocを使うことで初期化を自動的にしてくれる事は理解できました。
4
- しかし、~~関数 ‘calloc’ へ渡す引数が少なすぎます」~~や「戻りでポインタからキャスト無しに整数を作成しています」、「代入で整数からキャスト無しにポインタを作成しています」が出て来て治すことができません。
4
+ しかし、「戻りでポインタからキャスト無しに整数を作成しています」、「代入で整数からキャスト無しにポインタを作成しています」が出て来て治すことができません。
5
5
  この場合何がいけないのでしょうか。
6
6
 
7
7
 

2

訂正

2023/01/23 08:00

投稿

HYYH
HYYH

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,7 +1,7 @@
1
1
  **目的**
2
2
  3次元配列を動的に作る関数を作成しようとしています。
3
3
  mallocじゃなくてcallocを使うことで初期化を自動的にしてくれる事は理解できました。
4
- しかし、「関数 ‘calloc’ へ渡す引数が少なすぎます」や「 ‘calloc’ へ渡す引数が少なすぎます」、「 ‘calloc’ へ渡す引数が少なすぎます」が出て来て治すことができません。
4
+ しかし、~~「関数 ‘calloc’ へ渡す引数が少なすぎます」~~や「戻りでポインタからキャスト無しに整を作成しています」、「代入で整からキャスト無しにポインタを作成しています」が出て来て治すことができません。
5
5
  この場合何がいけないのでしょうか。
6
6
 
7
7
 

1

callocの引数の要素数を変更

2023/01/23 07:58

投稿

HYYH
HYYH

スコア16

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);