dポイントプレゼントキャンペーン実施中!

void init_map(char* map[WORLD_H][WORLD_W]) {


int tate, yoko;
int rudval;

for (tate = 0; tate < WORLD_H; tate++) {

for (yoko = 0; yoko < WORLD_W; yoko++) {

int rudval = rand() % 10;

if (rudval >= 6) {
map[tate][yoko] = '@';
}
else {
map[tate][yoko] = '-';


}
printf(" map[tate][yoko]");


}

printf("\n");
}

}

void init_map(char* map[WORLD_H][WORLD_W])

で配列を受け取って

その中に - @ をfor文で入れて

それを出力したいのですが

printf(" map[tate][yoko]");  // この部分がエラーになります

※ printf("%c",map[tate][yoko]);
printf("%s",map[tate][yoko]);

などもエラーになってしまいます

アドバイスいただけると助かります


------------------------------------main--------------------------------------
#include<stdio.h>
#include<stdlib.h>


#define WORLD_H 38
#define WORLD_W 38

//プロトタイプ宣言
void init_map(char map[WORLD_H][WORLD_W]);

int main(void) {

char* map[WORLD_H][WORLD_W];

init_map( &map[WORLD_H][WORLD_W]);
}

A 回答 (2件)

「エラーになる」というなら, せめてどのようなメッセージが出ているのかくらいは書いてほしい.



それから, どうも配列やポインタの扱いに慣れていないのではないかと想像する. 例えば
void init_map(char* map[WORLD_H][WORLD_W])
という関数 (ところで WORLD_H や WORLD_W っていくつなの?) の中で
map[tate][yoko] = '@';
がどういうことを意味するのかわかっていないようだし, その関数に対して
void init_map(char map[WORLD_H][WORLD_W]);
というプロトタイプを与えた上に
char* map[WORLD_H][WORLD_W];
init_map( &map[WORLD_H][WORLD_W]);
と渡すのも変.
    • good
    • 0

出力も、値をセットするのと同じように、1文字ずつ、出力しないといけません。

for文で、値をセットするのと同じように出力をしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!