반응형
정수 500 ~ 1000을 char 타입 memory[1000]에 넣어보자.
#include <stdio.h>
char memory[1000];
void memoryWrite(char memory[])
{
for (int i = 500; i < 1000; i++) memory[i - 500] = i;
}
void memoryRead(char memory[])
{
for (int i = 0; i < 500; i++) printf("%d\n", memory[i]);
}
int main()
{
memoryWrite(memory);
memoryRead(memory);
return 0;
}
당연히 char 타입은 unsigned인 경우에도 255까지만 넣을 수 있기 때문에 위의 결과가 나오게 된다.
하지만 메모리만 넉넉하다면 안 될 이유는 없다.
char 배열은 1000이고, 값은 500개이므로, 같은 크기의 short 배열에 넣으면 되기 때문이다.
따라서, char memory[]를 short로 타입 캐스팅 한 후, 값을 넣고, 읽을 때도 short 타입으로 출력하면 된다.
#include <stdio.h>
char memory[1000];
void memoryWrite(char memory[])
{
short* ptr = (short*)memory;
for (int i = 500; i < 1000; i++) ptr[i - 500] = (short)i;
}
void memoryRead(char memory[])
{
short* ptr = (short*)memory;
for (int i = 0; i < 500; i++) printf("%d\n", ptr[i]);
}
int main()
{
memoryWrite(memory);
memoryRead(memory);
return 0;
}
반응형
'알고리즘 > [EXP] 삼성 SW 역량 테스트 C형' 카테고리의 다른 글
비트 압축 - 허프만 알고리즘 (Simple Huffman Coding Algorithm) (0) | 2023.09.02 |
---|---|
타입 캐스팅으로 입력 빨리 받기, 비트 연산으로 메모리 압축하기 (0) | 2023.08.26 |
36진법 긴자리 두 수의 곱셈 with 36^5진법 + Fast Input (0) | 2023.08.26 |
36진법 긴자리 두 수의 곱셈 with 36^5진법 (0) | 2023.08.26 |
36진법 긴자리 두 수의 곱셈 (0) | 2023.08.26 |
댓글