Ex-포인터 변수에 2차원 배열의 시작 주소 저장
CODEDRAGON ㆍDevelopment/C, C++
반응형
포인터 변수에 2차원 배열의 시작 주소 저장
오류메시지
p[0][0]표현은 존재하지 않습니다.
왜냐하면 p는 1차원 배열이므로 1차원 형태로만 접근하게 됩니다.
printf("%x\n", &p[0][0]);
소스코드
#include <stdio.h> int main(void) { // 2차원 배열 int array[2][3]={10,20,30,40,50,60}; // 1차원 포인터변수 int* p=NULL; //포인터 변수에 배열의 시작 주소를 저장 p=array; // p=&array[0][0]; // p=array[0]; // p=*(array+0); // p[0][0]표현은 존재하지 않음. 왜냐하면 p는 1차원 배열이므로 1차원 형태로만 접근하게 됩니다. printf("------------\n"); printf("%x %x %x \n", &p[0], &p[1], &p[2]); // printf("%x %x %x \n", p+0, p+1, p+2); printf("%x %x %x \n", &p[3], &p[4], &p[5]); // printf("%x %x %x \n", p+3, p+4, p+5); // printf("%x\n", &p[0][0]); // ERROR: subscripted value is neither array nor pointer nor vector printf("------------\n"); printf("%d %d %d \n", p[0], p[1], p[2]); // printf("%d %d %d \n", *(p+0), *(p+1), *(p+2)); printf("%d %d %d \n", p[3], p[4], p[5]); // printf("%d %d %d \n", *(p+3), *(p+4), *(p+5)); return 0; } |
출력결과
'Development > C, C++' 카테고리의 다른 글
매크로 상수 - 매크로 상수의 정의, 매크로 상수의 해제, 매크로 상수의 장점 (0) | 2021.12.01 |
---|---|
형변환으로 인한 데이터 손실, 강제 형변환 (0) | 2021.11.26 |
클래스 정의, 클래스 선언 형식 (0) | 2021.11.11 |
다이아몬드, 별 트리, 모래시계, 나비 (0) | 2021.05.16 |
함수의 동일 명칭 (0) | 2020.12.14 |