#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define SIZE_arr 20
void New_Start(char Foundation_arr[10][SIZE_arr][SIZE_arr]);
void ARR_OUT(char Foundation_arr[10][SIZE_arr][SIZE_arr]);
void goal_location(char Foundation_arr[10][SIZE_arr][SIZE_arr]);
void first_location(char Foundation_arr[10][SIZE_arr][SIZE_arr]);
int main()
{
char Foundation_arr[10][SIZE_arr][SIZE_arr];
New_Start(Foundation_arr);
first_location(Foundation_arr);
goal_location(Foundation_arr);
ARR_OUT(Foundation_arr);
return 0;
}
void New_Start(char Foundation_arr[10][SIZE_arr][SIZE_arr])// 초기 배열 설정
{
for (int i = 0; i < SIZE_arr; i++)
for (int s = 0; s < SIZE_arr; s++)
Foundation_arr[10][i][s] = 'O';
}
void ARR_OUT(char Foundation_arr[10][SIZE_arr][SIZE_arr])// 2중 배열 출력
{
for (int i = 0; i < SIZE_arr; i++)
{
for (int s = 0; s < SIZE_arr; s++)
printf("%c", Foundation_arr[10][i][s]);
printf("\n");
}
}
void goal_location(char Foundation_arr[10][SIZE_arr][SIZE_arr])// 목표물 출력 a to b
{
srand(time(NULL));
int x = rand() % SIZE_arr; //0~40
int y = rand() % SIZE_arr;
Foundation_arr[10][y][x] = (char*)" B ";
}
void first_location(char Foundation_arr[10][SIZE_arr][SIZE_arr])
{
int x = SIZE_arr / 2;
int y = SIZE_arr / 2;
Foundation_arr[10][y][x] = (char*)"tt";
}
전체 코딩이구요
제가 궁금한 것은
void first_location(char Foundation_arr[10][SIZE_arr][SIZE_arr])
{
int x = SIZE_arr / 2;
int y = SIZE_arr / 2;
Foundation_arr[10][y][x] = (char*)"tt";
}
이부분인데
Foundation_arr[10][y][x] = "a";로 했다가 (char*)"a"로 바꿔봤는데 안되서요;;;;
char*에서 const char로 못바꾼다고 c2440이 뜨는데 흠 포인터 문자열 그거 같은데 해결 방법이 었을까요?
이걸 어떻게 할 수 있을 까요?
신라면순한맛
Foundation_arr[10][y][x]는 char 타입이자너
큰따옴표가 아니라 작은따옴표를 써야됨
Foundation_arr[10][y][x] = 'a'; 이렇게
클로로프렌
아 그 보기 편하게 할려고 했는데 그냥 printf로 하는게 좋을 듯 ㄳㄳ 근데
Foundation_arr[10][y][x] = "hi"는 불가능 할까요?
신라면순한맛
Foundation_arr[10][y][x]는 타입이 char라서 문자열(const char *)을 대입할수가 없음
그리고 애초에 c언어는 대입연산자로 문자열을 대입하는걸 지원안함
strcpy나 memcpy쓰거나 for문 돌려야됨
클로로프렌
아하 ㄳㄳ 이거 생각하고 있었는데 역시군요!
감사합니다