sheflynn 发表于 2025-4-13 12:37

指针在使用前必须初始化,否则会导致未定义行为。

burgessmaggie 发表于 2025-4-13 14:29

参数传递时注意数组退化为指针。            

bartonalfred 发表于 2025-4-13 16:11

访问未分配的内存区域,导致未定义行为

juliestephen 发表于 2025-4-13 20:14

在解引用之前,需要确保指针不为空且指向有效的内存地址。

wengh2016 发表于 2025-4-14 08:17

指向随机内存,可能导致程序崩溃或安全漏洞。

mattlincoln 发表于 2025-4-14 11:01

使用未初始化或已释放的指针。            

lihuami 发表于 2025-4-14 12:50

局部数组如果不显式初始化,其内容是不确定的;全局或静态数组如果未初始化,会自动初始化为0。

macpherson 发表于 2025-4-14 14:39

当释放指针所指向的内存后,要将指针置为NULL,避免产生悬空指针。悬空指针指向已经被释放的内存,对其进行操作会导致未定义行为。

单芯多芯 发表于 2025-4-20 10:50

数组是连续存储的变量集合,指针是存储变量地址的变量。

LinkMe 发表于 2025-4-20 18:20

访问数组要小心,别超出范围

Amazingxixixi 发表于 2025-4-24 15:33

学习一下啊!感觉有点知识慌了

lamanius 发表于 2025-5-8 19:41

数组和指针是C语言中两种重要的数据结构,它们在概念、使用和内存管理上有显著的区别。

l1uyn9b 发表于 2025-5-8 20:53

数组属于一组连续存储的同类型元素集合。存储内存地址的变量。而指针静态分配的内存块,大小固定。动态指向内存地址,大小固定(指针变量本身)

tax2r6c 发表于 2025-5-8 21:45

数组是内存分配在编译时完成,大小固定,不能动态改变。存储在栈或全局数据区(取决于声明位置)。

su1yirg 发表于 2025-5-8 23:15

指针本身占用固定大小的内存(如32位系统占4字节),但指向的内存可以动态分配。

p0gon9y 发表于 2025-5-9 09:06

动态分配的内存(如malloc)存储在堆中。

q1d0mnx 发表于 2025-5-9 10:12

数组使用下标访问元素,如arr。下标访问等价于指针偏移:arr等价于*(arr + i)。指针使用解引用操作符*访问指向的值,如*p。指针可以指向任意地址(需确保地址有效)。

lix1yr 发表于 2025-5-9 13:09

数组名是常量指针,不能改变指向。指针变量可以重新赋值,指向不同的地址。

g0d5xs 发表于 2025-5-9 13:24

其实数组无法直接赋值给另一个数组(需逐元素复制)。

b5z1giu 发表于 2025-5-9 14:21

指针一般来说可以动态分配和释放内存,灵活性更高。
页: 1 [2] 3
查看完整版本: 数组和指针的区别