본문 바로가기

언어/ㄴC언어5

[C언어] 이차원배열 더블포인터 관계 int a[4];in *p = a;일때 a[0] == p[0], a[1] == p[1] 이라고 하는 것을 보고 in a[3][4]; 일 때int **p =a;이고 a[0][0] == p[0][0], a[1][2]== p[1][2]로 알고 계시는 분들이 있으십니다.혹은 왜 이게 안되는지 궁급해 하십니다. 그래서 이런 글을 올립니다. 참고하세요 배열의 등가포인터 의미와 생성 그리고 활용에 대하여 다룹니다. 자 이런 배열이 있습니다int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; 이때 배열의 이름 a는 배열의 정의상 배열의 첫요소의 주소입니다. 그러면 이는 배열의 첫요소 즉, a[0][0]의 주소 즉, &a[0][0] 일까요?아니면 &a[0] 일까요? 값만 놓고 보면 둘 다 같은 .. 2016. 3. 24.
[C언어] C언어 동적할당 C언어에서는 C++이나 JAVA와 달리 int a[userinputSize] ; 또는 int a[] = new input[size] 이런식으로 어떠한 변수나 입력값이 변수길이에 오지 못하게 제어해놓았다. 그럼 문제는 유저가 이 배열을 몇개나 쓸꺼냐 하는 것을 미리 알지 못하기 때문에, 이러한 배열을 만들어서 사용하려면 동적할당을 이용해야 한다. -참고로... 무식한 방법인 int a[1000]; 과 같은 방법을 사용해버리면, 돌아는 간다. 하지만 그대는 전산학도로서 발전이 없으리라... 저상태에서 유저가 배열을 10개정도만 사용한다면 990개의 메모리 공간이 버려지는 셈이다. 전산의 생명은? 효율! C언어에서 동적할당 하는 방법을 메모해 놓고자 한다. 1. 일차원배열 int *input; int stat.. 2016. 3. 24.
[C언어] sizeof 에 대해 sizeof 연산자(operator)를 사용합니다. 함수는 아닙니다. sizeof(array) 나누기 sizeof(array[0]) 이렇게 하면, 배열 요소 개수(number of elements in an array)가 구해집니다. sizeof(array) 로, 배열 전체의 바이트(Byte) 수를 구하고 sizeof(array[0]) 으로, 배열 첫번째 요소의 크기를 바이트 단위로 구합니다. 이것을 나누면, 배열의 요소 개수가 나옵니다. 다음 예제와 같습니다. sizeof 연산자로 배열 사이즈 계산 예제 소스 파일명: example.cpp #include int main(void) { int foo[] = { 519, 31, 7988, 165326, 10, -24642, 134 }; // 배열의 바이트.. 2016. 3. 24.
[C언어] string to double 자료형 변환 char *b문자형 변수 b에 0.004라는 문자형 소수가 들어있다.이것을 float or double 형으로 자료형 변환을 해보자. 여기서 쓸 함수는 atof 함수이다. 이것을 쓰기위한 헤더함수는 stdlib.h 이다.소스는 이것이고 아래에 사진은 소스와 실행화면이다. b에 0.004 를 넣을 땐 포인터를 쓴다. ( 오랜만에 C언어를 써서 여기서 한참 막혔다..ㅠㅠ)클릭하면 커지니 클릭해서 보기 바란다. 2016. 3. 23.