int main(){
int t;
int score = 0;
cin >> t;
char* mark = new char[t];
cin >> mark;
mark[t] = NULL;
for (int i = 0; i<t; i++)
{
if (mark[i] == 'o')
score++;
}
cout << score;
이 코드에서 자꾸 오류가나서
저 빨간 부분을 i<=t-1 로 바꿨더니 오류가 안나더라구요
i<=t-1이나 i<t나 똑같지 않나요...?
그리고 저 코드 돌린 후에 다시 i<t로 바꿨더니 다시 잘돌아가대요..?
이미 메모리에 뭔가가 씌어져있어서 그런건가 잘 모르겠어요
알려주시면 감사하겠습니다ㅠㅠㅠㅠ
맞는데? 근데 mark 포인터에 할당된 메모리 반환좀해줘
에러난 코드를 보여줘
에러메시지
에러메시지는 읽기 가능한 크기는 t+1바이트인데 실제로는 2바이트만 읽을 수 있습니다 이거였어요..
아 t+1 가 아니라 t*1 이요!
난 빌드 잘되는데 그럼 int t;를 int t=0;으로 초기화시켜보고
내가볼땐 에러메시지는 mark가 유발시키는걸로 보이는데 mark[2] 일경우 mark자체는 문자열을 읽을 수 있는데 mark[2] 의 한바이트만 읽으니까
mark[i] == 'o'를 (char)mark[i] == 'o' 이렇게 바꿔봐
아 도와주셔서 감사합니다..!
해당 댓글은 삭제되었습니다.
그 전에도 에러가나서 혹시 널 설정을 안해서 그런가하구 넣어본거에요ㅠㅠ