下に私のプログラムのための未完成のコードがありますが、現段階ではエラーが発生しています(Xcodeログ:Subscripted value is not array, pointer or vector
)。私はメモリ割り当てと関係があると思います。このエラーは、1の値を(*map[x2][y2]).exist
に、そしてmap[x1][y1] = NULL;
に代入しようとすると、if文で発生します。そのような変数に値を割り当てる適切な方法を示してください。Cでの動的メモリ割り当て:なぜエラーが発生するのですか?
ありがとうございます! X2とY2が規定値を持っていない他に
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int num;
_Bool exist;
}name;
int main(void){
name* map[10][10];
name* guy;
guy = (name*)malloc(10*sizeof(name));
int x1, y1, x2, y2;
int m, n, o;
for(m = 0; m < 10; m++){
for(n = 0; n < 10; n++){
map[m][n] = NULL;
}
}
for(o = 0; o < 10; o++){
(*(guy+o)).num = rand() % 4;
(*(guy+o)).exist = 1;
do{
m = rand() % 10;
n = rand() % 10;
}while (map[m][n] != NULL);
map[m][n] = guy + o;
}
if(map[x2][y2] == NULL){
name *map = malloc(10*10*sizeof(name));
(*map[x2][y2]).exist = 1;
map[x1][y1] = NULL;
}
return 0;
}
あなたは間違っていると思います。あなたが意図するものを説明する(* map [x2] [y2]) 'to * do *? – WhozCraig
@WhozCraig私は1の値を '(* map [x2] [y2]) 'に代入したい – user6115697
@WhozCraigフィールドを移動して障害物を回避する必要があるゲームを作っています – user6115697