반응형
<1번문제>
#include <iostream>
using namespace std;
int data[10];
int main()
{
return 0;
}
int 는 4바이트
10개 있으니까 답은 40
<2번문제>
#include <iostream>
using namespace std;
double data[3];
char vect[10];
int dt[10];
int main()
{
return 0;
}
double 8 char 1 int 4
8*3 + 10 *1 + 10 *4 = 74;
답은 74
<3번문제> padding 포함
#include <iostream>
using namespace std;
struct Node
{
int x;
char t;
};
Node vect[100];
int main()
{
return 0;
}
struct 같은 구조체는 네모나게 잘린다고 했음
int 4
char 1이니까
가로로 4칸, 세로로 2칸짜리 8칸이 생겨남 한번 node 생길때마다
이게 100개짜리 배열로 만들어지므로
100*8 = 800바이트
답 : 800
<4번문제> 64bit 컴파일 했을 때, padding 포함
#include <iostream>
using namespace std;
struct Node
{
int x;
char *next;
};
Node vect;
int main()
{
return 0;
}
x64에서 컴파일 시 포인터의 크기가 달라짐
x86 에서는 4바이트 x64에서는 8바이트임
구조체에서 int 랑 char pointer이 만들어졌으므로
네모나게 만들어져야함
x64에서는 포이터가 8바이트므로 가로는 8바이트로 설정 (8>int의 4)
세로는 두개이므로 2칸
한번 Node 가 만들어질때마다 16바이트가 만들어짐
현 문제에서는 vect 하나만 만들었으므로 16바이트~
답 : 16바이트!!
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
if (n == 1) cout << 40;
if (n == 2) cout << 74;
if (n == 3) cout << 800;
if (n == 4) cout << 16;
}
!ㄲ
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
result[4] 칸 만들어서 삽입정렬하기 (0) | 2020.05.16 |
---|---|
#include <algorithm>의 sort&compare함수 쓰기 - 사정정렬 (0) | 2020.05.13 |
#include <string> 두번째 기능 a+b = c (0) | 2020.05.13 |
#include <string>은 놀라워! 비교 굿굿 (0) | 2020.05.13 |
vector 사용해서 풀어보는 sliding window 최소합 구하기 (0) | 2020.05.13 |
시간복잡도 계산해보기! (0) | 2020.05.13 |
DFS 간단 코드 다시 한번더! string으로 이름 불러오기 (0) | 2020.05.13 |
가장 큰 숫자값 3개 구하기 // 4칸짜리 삽입정렬 이용함 (0) | 2020.05.13 |