You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

代码可正常运行但无法理解数组大小由来的技术问询

理解数组大小为12的原因

嘿,我来帮你理清楚这个数组大小的由来!先看你给出的代码片段:

#define PARAMS 12
char** parseFile(char* tmp[], char* location) {
    // 解析<location>路径下的文件,从中提取6组键值对
    // 所有键值对均存储在tmp中,最终得到一个包含12个char指针的数组,每个指针指向一个存储键或值的char数组
    // ... do { y...
}

这里的逻辑其实很直接,核心是注释和宏定义的对应关系:

  • 注释明确说明要提取6组键值对,而每组键值对必然包含两个独立部分:一个「键(key)」和一个「值(value)」。
  • 那6组键值对总共需要的存储位置就是 6 × 2 = 12,这正好对应了#define PARAMS 12的数值。

简单来说:每一组键值对要占两个char指针的位置(一个存键的地址,一个存值的地址),6组累加下来就是12个指针位置,所以数组大小被定义为12。你觉得“本不该运行”,大概率是没把「键值对是两个独立元素」这个点和宏定义的数值关联起来——其实这个逻辑是完全自洽的。

内容的提问来源于stack exchange,提问作者ci7i2en4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:36:15