|
조준회 님이 쓰신 글 :
:
: 제가 처음 씨를 배울때는 정말로 사소한 문제를 잡으려고..
: 꼬박밤을 세워가면서 했는데..
:
: 쩝~..
:
: malloc은 메모리중 특정공간을 사용할수 있도록 확보해주는 역활을 하는 함수입니다.
: return 값은 void * 이고요.(즉 포인터입니다.)
:
: 그런데.. prt은 char * 입니다.
: 따라서 형이 맞지 않기 때문에 나오는 문제입니다.
:
: prt = (char *) malloc... 이렇게 해서 캐스팅 시키면.. 없어질겁니다.
: 메세지를 읽고 생각해 보시면.. 아마 파악 할 수 있었을텐데..
:
: 또, 한가지 malloc으로 메모리를 예약하면..
: 반드시 free로 해제해 주어야 합니다.
:
: free를 하지 않으면.. 다른 프로그램에서 그 만큼의 공간을 사용하지 못합니다.
: (메모리 누수..)
:
: 몇번 반복하면.. 메모리 부족으로 문제가 생깁니다.
:
: 숙제:
: malloc/free 와
: farmalloc/farfree
: new / delete의 차이가 무엇일까요?.
:
: 위 숙제의 내용을 이해하시면.. 프로그램 하는데 도움이 될겁니다.
:
:
: 김경래 님이 쓰신 글 :
: : C:\C test\yj\oo.cpp(7) : error C2440: '=' : cannot convert from 'void *' to 'char *'
: : Conversion from 'void*' to pointer to non-'void' requires an explicit cast
: : 이런에러가뜨네요 ㅠ.ㅠ;;
: : 지송하지만 이것두 갈켜주세요
: :
: :
: : 조준회 님이 쓰신 글 :
: : :
: : : /0 이 아니라.. \0인것 같군요..
: : :
: : : 김경래 님이 쓰신 글 :
: : : : 책의 예제대로 그대로했는데 값이 왜 안올까요--;;
: : : : 고수님 갈켜주세요 정말지송합니다.
: : : :
: : : : #include<stdio.h>
: : : : #include<stdlib.h>
: : : : char count,*ptr,*p;
: : : :
: : : : void main()
: : : : {
: : : : ptr = malloc(35 * sizeof(char));
: : : :
: : : : if(ptr == NULL)
: : : : {
: : : : puts("Memory allocation error.");
: : : : exit(1);
: : : : }
: : : :
: : : : p=ptr;
: : : :
: : : : for(count =65;count<91;count++)
: : : : {
: : : : *p++=count;
: : : :
: : : : *p='/0';
: : : :
: : : : puts(ptr);
: : : :
: : : : }
: : : :
: : : : }
|