더미 와 창고 의 차이 (메모리 와 데이터 구조)
, , C 。 , 。 : 、 , , 。
, , : 。
。
, , 。 ( ), ( )。
, 。 , 。 ( ), 。 , , , , , , , , 。
C , , Rom Flash , , , :
, 。
, 。 , ; ; 。
:
main.cpp
int a = 0;
char *p1;
main()
{
int b;
char s[] = "abc";
char *p2;
char *p3 = "123456"; 123456\0 ,p3 。
static int c =0; ( )
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
}
0.
: ( stack) , char a; 。 ( heap) , malloc(10); 。 , , , 。 , , 。 :
1.
: , , 。
: , , , 。
, , , , , , , delete 。 , , 。
。
2.
0 1 。
: , 。 。
: new , , , 。
3.
: Windows , , 。 , WINDOWS , 2M( 1M, ), , overflow。 , 。
: , 。 , , 。 。
4.
, , 。
: , ( ) , , C , , 。 。
, , , , , 。
: 。 。
。 。
5.
char s1[] = "aaaaaaaaaaaaaaa";
char *s2 = "bbbbbbbbbbbbbbbbb";
aaaaaaaaaaa ; 。
bbbbbbbbbbb ; 。
, , ( ) 。
:
#include
void main()
{
char a = 1;
char c[] = "1234567890";
char *p ="1234567890";
a = c[1];
a = p[1];
return;
}
10: a = c[1];
00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh]
0040106A 88 4D FC mov byte ptr [ebp-4],cl
11: a = p[1];
0040106D 8B 55 EC mov edx,dword ptr [ebp-14h]
00401070 8A 42 01 mov al,byte ptr [edx+1]
00401073 88 45 FC mov byte ptr [ebp-4],al
:
, ( )、 、 ( ), , 、 、 , , 。
, , , 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.