1.메모리 할당
void main(void)
{
int *ptr1;
ptr1 = (int *)malloc(..);
}
내가 메모리 할당 PTR1 & PTR2을 위해 수행하는 방법을 물어보고 싶은
2.
void main(void)
{
static int *ptr2;
ptr2 = (int *)malloc(..);
}
?
1.메모리 할당
void main(void)
{
int *ptr1;
ptr1 = (int *)malloc(..);
}
내가 메모리 할당 PTR1 & PTR2을 위해 수행하는 방법을 물어보고 싶은
2.
void main(void)
{
static int *ptr2;
ptr2 = (int *)malloc(..);
}
?
ptr1
포인터 자체가 스택에 할당됩니다. ptr1
은 힙의 메모리를 가리 킵니다.
자체는 단지 프로그램 시작시 할당 (main
가 호출되기 전에) 및 글로벌지만되는 ptr2
포인터가 그 범위에 선언되어 있기 때문에 단지 main
에 볼 수 있도록 발생합니다. ptr2
은 힙의 메모리를 가리 킵니다.
main
외부에있는 ptr2
을 선언하면 그 아래 모든 기능에서 볼 수 있지만 저장 용량은 동일합니다.
C에서 'malloc'의 반환 값을 캐스팅 할 필요가 없습니다. 또한,'void main (void)'는 최소한'int main (void)'이어야한다. –