반응형

분류 전체보기 430

[C++] 백준 10988번 팰린드롬인지 확인하기

https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 풀이 #include #include using namespace std; int main() { string n; cin >> n; string m = n; char tmp; for (int i = 0; i < n.length() / 2; i++) { tmp = n[i]; n[i] = n[n.length() - 1 - i]; n[n.length() - 1 - i] = tmp; } if (m == n) { cout

[따배시 6.13] 포인터와 const

int* array1 = new int[length](0); 이렇게 되면 0으로 초기화가 됩니다. int* array1 = new int[length] {11, 22, 33, 44, 55, 66}; 위의 경우 11 22 33 44 55 66 까지 정상적으로 나오고 이후에는 쓰레기값으로 출력되게 됩니다. int value = 5; int* ptr = &value; *ptr = 6; 이럴경우 ptr을 6으로 바꿔지면서 value도 6으로 바뀌게 됩니다. 그런데 만약에 const int value를 하게 되면 포인터를 통해서 value를 읽으려면 point 또한 const를 붙여주셔야 합니다. int main() { const int value = 5; const int* ptr = &value; cout

[따배시 6.11] 메모리 동적할당 new와 delete

int array[1000000]; 정적에 할당하는 메모리는 stack에 들어갑니다. 이 stack에는 메모리가 작습니다. 동적으로 할당하는 메모리는 hip에 들어가며 이 hip에는 메모리가 큽니다. 이렇기 때문에 코딩을 할 때는 정적메모리를 잘 활용하셔야 합니다. 큰 메모리를 만들려면 동적 메모리와 친숙해지셔야 합니다. int *ptr = new int; os로부터 받아온 4byte의 메모리를 그대로 사용할 수 있는 것입니다. int* ptr = new int{ 7 }; cout

[따배시 6.10] C언어 스타일의 문자열 심볼릭 상수, 포인터 사용의 유의점

char* name = "Jack Jack"; 위 같은 경우는 불가능합니다. 왜냐하면 Jack Jack은 임시로 만들어진 literal일 뿐인데 여기에다 포인터를 집어넣을 수는 없는 것입니다. 포인터는 메모리의 주소를 가리킬 수 있는 것이기 때문에 Jack Jack이 담길 곳이 없기 때문에 그런 것입니다. 하지만 여기에다 const를 붙여주면 가능합니다. const char* name = "Jack Jack"; 이는 특별히 name을 const로 고정해두면서 가능하게 해주는 것입니다. const char* name = "Jack Jack"; const char* name2 = "Jack Jack"; cout

반응형