一、四种内存模型测试代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
char buf1[] = "1111";//代表字符串
char buf2[4] = "2222";//代表字符数组
/* c风格字符串:表示以0结尾的字符串
"1111":表示c风格字符串,在全局区有'\0'
"2222":表示c风格字符串,在全局区有'\0'
*/
printf("buf1=%d\n", sizeof(buf1));
printf("buf2=%d\n", sizeof(buf2));
char* p1 = "3333";
printf("p1=%s\n", p1);
char* p2 = NULL;
//申请一块10个字节的内存空间,结果返回内存空间首地址.
p2 = (char*)malloc(10);
strcpy(p2, "4444");
printf("p2=%s\n", p2);
printf("\n");
system("pause");
return 0;
}
二、内存四区图表示如下: