인프런 커뮤니티 질문&답변

Clain님의 프로필 이미지
Clain

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

교안 p79 질문드립니다

해결된 질문

작성

·

155

·

수정됨

0

안녕하세요 큰돌님!

교안 p79에 memset() 개념에서

char형의 하나의 문자(a, b, c, 등..)으로 초기화도 가능하다고 하셨는데, 어떻게 초기화하면 될까요?

#include <bits/stdc++.h>
using namespace std;
const int max_n = 1004;
int a[max_n];
int a2[max_n][max_n];
int main()
{
    memset(a, 'a', sizeof(a));
    memset(a2, 0, sizeof(a2));

    for (int i = 0; i < 10; i++)
        cout << a[i] << ' ';
    cout << '\n';

    return 0;
}

위의 예제 코드를 실행하면

1633771873 1633771873 1633771873 1633771873 1633771873 1633771873 1633771873 1633771873 1633771873 1633771873 가 나옵니다ㅠㅠ

 

그리고 교안 80p에 예제코드로 올려주신 아래 코드가 잘못된 것 같습니다 🙂 수정해주시면 감사하겠습니다.

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int cnt = 0;
    int a[5] = {
        0,
    };
    while (++cnt != 10)
    {
        for (int i = 0; i < 5; i++)
            a[i] = i;
        a[5] = {
            0,
        };
        for (int i : a)
            cout << i << ' ';
        cnt++;
    }
    return 0;
}

 

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 Clain님 ㅎㅎ

 

memset

-> char타입으로 안해서 그렇습니다.

char a[max_n]; 
int main()
{
    memset(a, 'a', sizeof(a)); 
    
    for (int i = 0; i < 10; i++)
        cout << a[i] << ' ';
    cout << '\n';

    return 0;
}

이렇게 해보시겠어요?

 

80p 코드

>> 해당 부분은 수정하도록 하겠습니다.

#include <bits/stdc++.h>
using namespace std; 
int main()
{
    int cnt = 0;
    int a[5] = {0, };  
    while(++cnt != 10){ 
        for(int i = 0; i < 5; i++) a[i] = i;
        a[5] = {0, };
        for(int i : a) cout << i << ' '; 
    } 
    return 0;
}

불편을 드려 죄송합니다. cnt++이 더 들어갔네요 ㅠ

 

항사 제 교안을 자세하게 봐주셔서 감사합니다. ㅎㅎ

감사합니다.

Clain님의 프로필 이미지
Clain
질문자

앗 미처 발견을 못하고...ㅠㅠ 그럼에도 친절하게 설명해주셔서 감사합니다..ㅠㅠ

항상 친절히 설명해주시고 업데이트 해주셔서 감사합니다:)

Clain님의 프로필 이미지
Clain

작성한 질문수

질문하기