#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define _CRT_SECURE_NO_WARNINGS
int main() {
char buffer[10] = "aaa";
char buffer2[] = "bbb";
char* pointer1 = "111111";
char* pointer2 = (char*)malloc(128);
strcpy(pointer2, "22222");
system("pause");
free(pointer2);
return 0;
}
以上代码展示了C/C++语言中一级指针的基本用法及内存管理。首先定义了一个固定大小的字符数组`buffer`,并显式初始化。接着定义了一个自动调整大小的字符数组`buffer2`,编译器会根据初始化值自动确定数组大小。随后,创建了两个指向字符的指针`pointer1`和`pointer2`,其中`pointer1`直接指向一个字符串常量,而`pointer2`则是通过`malloc`函数动态分配内存,并使用`strcpy`函数将数据复制到新分配的内存区域。最后,为了防止内存泄漏,在程序结束前通过`free`函数释放了`pointer2`指向的内存。
一级指针内存模型图