언어/C++
C++ const(상수)로 선언된 변수를 수정할 수 있을까?
SagacityJang
2021. 1. 18. 16:46
포인터를 이용하면 수정할 수 있다.
#include <iostream>
using namespace std;
int main() {
const int cl = 1000;
int* pi = (int*)&cl;
*pi = 200;
cout << *pi;
return 0;
}
그렇다면 이런식으로 이용할수도 있겠지..
#include <iostream>
using namespace std;
struct tChunk {
long long arrLL[100] = { 0, };
};
void OutputChunk(const tChunk * _pChunk) {
tChunk* chunk = (tChunk*)_pChunk;
chunk->arrLL[0] = 100;
((tChunk*)_pChunk)->arrLL[2] = 100;
for (int i = 0; i < 100; ++i) {
cout << _pChunk->arrLL[i] << "\n";
}
}
int main() {
tChunk chunk;
for (int i = 0; i < 100; ++i) {
chunk.arrLL[i] = i + 1;
}
OutputChunk(&chunk);
return 0;
}