c - c中数组分配的内存的哪一部分

标签 c arrays memory microcontroller

在 c 中,当你声明一个像 int buffans[46]; 这样的数组时,它是在内存的哪一部分创建的?

我问的原因是因为当我到达这部分代码时我的 mcu 似乎挂起,但是当我使用较小的数组 int buffans[26]; 时它工作正常。

我想知道我是否内存不足?

void getRes(int length){
  int i;
  int buff[46];
  for (i = 0; i < length; i++)
  {
    buff[i] = getch(UART_7)); 
  }
  buff[i] = 0;
  TI_PRINTF("\nANS ");
  for( i = 0; i < length; i++)
  {
    TI_PRINTF("[%x]", buff[i]);
  }
  TI_PRINTF("\n");
}

最佳答案

在发布的代码中,数组是在堆栈上创建的。

关于c - c中数组分配的内存的哪一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35537415/

相关文章:

c - 将 C 程序分解为多个文件时,gcc 返回 undefined reference

ios - 在内存不足时防止 ViewDidUnload?

c - 自由二维数组

c - fgetws 无法在 Linux 上读取非英文字符

java - 将数组项放入带有 2 个字符串的 hashmap 中

php - PHP-如何将数组的空值移至最后位置

如果 malloc 失败,C 释放二维数组

c++ - 当列表中有两个以上的项目时,链表的函数添加会崩溃?

c++ - 逆序计数排序 vector 重新分配

c - C语言中日期只能输入一个整数,不能输入年月日