식에 개체 포인터 형식이 있어야 하는데 "int" 형식이 있음. 이라는 오류에 관하여.
#include <bits/stdc++.h>
using namespace std;

int n;
int l[30];
int r[30];
int v[30];

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n;
    for(int i=0; i<n; i++){
        char v, l, r;
        int vnum,lnum,rnum;
        for(int i=1; i<=3; i++){
            cin>>v>>l>>r;
            vnum=v-'A';
            if(l!='.') lnum=l-'A';
            if(r!='.') rnum=r-'A';
            l[vnum]=lnum;
            r[vnum]=rnum;

        }
    }
}

이와 같은 코드를 작성했을때, 

이러한 오류 메시지를 받게 되었고, 왜 이런게 발생하는지에 대해 생각해보다가 gpt에 검색해보았다. 

답변을 읽어보니 굉장히 어이없게도 내가 배열로 v, l, r 라는 이름을 써놓고, 다시 또 각각의 char를 받아들이는데 있어서도 v, l, r를 선언해서 두 내용이 혼선이 있었기 때문이다. 

지피티를 통해 검색해보았을때 아주 금방 눈치를 채게 되는 잘못된 코드였는데, 그 전까지는 정말 도대체 어디가 잘못된 것인지 알지 못했다. 

애초에 이렇게 간단한 단어들로 변수명을 선언할때, 이렇듯 겹치지 않게 굉장히 주의해야 할 것 같다. 

만약 지속적으로 이러한 문제가 발생한다면 애초부터 변수명을 설정할때 단순하게 알파벳 하나로 선언하지 말고, 조금 더 길게 설명을 해줄 수 있는 단어를 사용하는 습관을 들여야 할 것 같다. 

너무 짧게만 코드를 작성하려 하지 말고, 실수없이 작성하는걸 우선으로 생각하도록 하자. 

 

  Comments,     Trackbacks