礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

stm32如何定义动态数组-stm32怎么定义字符串

2025-11-08 06:24:41  

stm32如何定义动态数组-stm32怎么定义字符串

优质解答

STM32里动态数组就是用malloc在堆里申请的,比如用char arr = (char)malloc(100);这样写。字符串的话就是用const char str = "Hello";这种形式,因为字符串末尾自带0。

为啥这样呢?因为STM32的数组在栈里最多只能定义64KB,超过就得用堆。比如用int arr[1000]会报错,但char arr = (char)malloc(1000);就能用。字符串用const char是因为要告诉编译器这是只读的,比如在printf里用"Hello"就不会被修改。数据手册里写着堆空间一般有几KB到几十KB,具体看型号。比如F103的堆空间是20KB左右,所以动态数组不能太大。还有,用malloc要记得free掉,不然会内存泄漏。比如先声明char arr = (char)malloc(100);再free(arr);。字符串的话,虽然可以自己加0,但用const char更安全,比如str = "Hello";和str[0] = 'H';的区别在于const char不能改内容。

本题链接:

STM32动态数组字符串定义