게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
void 포인터에 대해서 질문좀...
게시물ID : programmer_12089짧은주소 복사하기
작성자 : 우와우와우왕
추천 : 0
조회수 : 490회
댓글수 : 27개
등록시간 : 2015/07/14 13:44:31
옵션
  • 본인삭제금지
Code Snippet
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4.  
  5.  
  6. int main(void)
  7. {
  8.     void *vp;
  9.     int *pi=NULL;
  10.  
  11.     vp = &pi;
  12.  
  13.     //*vp = (int*)malloc(sizeof(int));                pi=(int*)... 이렇게 하면 정상적으로 컴파일, 작동됨
  14.  
  15.     **(int**)vp = 5;
  16.  
  17.     printf("%d", **(int**)vp);
  18.  
  19.  
  20.     return 0;
  21. }
 
 
 
vp는 pi의 주소를 가리키고 *vp는 pi가 가리키는 메모리 영역을 포인트 하므로
 
주석부분과 같이 코딩하면 최종적으로 pi가 가리키는 메모리 영역에 동적메모리가 할당 될 것이다...가 저의 생각이었는데
 
에러가 발생합니다.
 
 
 
vp대신에 pi=(int*)... 이런식으로 해도 되고
 
아니면 그냥 임의의 int형 변수를 하나 만든다음에 pi가 그녀석을 포인트 해도 되지만
 
왜 안되는지 이유가 궁금하네요...
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호