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

C++二维字符数组存学生姓名报'char[8]初始化器过多'如何解决?

问题修复方案

错误原因

  • 数组维度定义不匹配:你声明的char name[5][8]仅支持存储最多5个长度不超过7的字符串,但是你实际需要存储8组、每组5个共40个学生姓名,初始化的数据量远大于数组声明的容量,因此触发初始化器过多的报错。
  • 姓名长度预留不足:部分姓名例如Adrielle共8个字符,算上字符串末尾的\0结束符至少需要9字节的存储空间,原来声明的8字节长度会导致内存溢出。
  • 语法错误:缺少循环变量i的类型声明、数组初始化语句末尾缺少分号、printf没有填写格式化字符串、遍历逻辑和数组结构不匹配。

修复代码(C++风格更简洁版,使用string避免内存溢出问题)

#include<iostream>
#include<string>
using namespace std;
int main ()
{
  cout << "\tStudent name\n";
  // 声明8行5列的string二维数组,对应40个学生姓名
  string name[8][5] = {
    {"Airah", "Ariya", "Arissa", "Althea", "Annika"},
    {"Alvin", "Adrielle", "Anthony", "Angelo", "Azriel"},
    {"Belle", "Camila", "Clara", "Elize", "Felicity"},
    {"Isabel", "Irish", "Kaila", "Kitchy","Kianna"},
    {"Lucas", "Miracle", "Natalia", "Primo", "Paris"},
    {"Rafael", "Ryan", "Rico", "Sky", "Serafine"},
    {"Samantha", "Scott", "Timothy", "Theo", "Tyron"},
    {"Winter", "Xyler", "Yohan", "Zachary", "Zhea"}
  };
  // 双层循环遍历所有姓名输出
  for (int row = 0; row < 8; row++) {
    for (int col = 0; col < 5; col++) {
      cout << name[row][col] << "\t";
    }
    cout << "\n";
  }
  return 0;
}

如果你坚持要用char数组实现,修复后代码如下:

#include<iostream>
#include<cstdio>
using namespace std;
int main ()
{
  cout << "\tStudent name\n";
  // 8组,每组5个姓名,每个姓名最大长度预留20字节足够存储
  char name[8][5][20] = {
    {"Airah", "Ariya", "Arissa", "Althea", "Annika"},
    {"Alvin", "Adrielle", "Anthony", "Angelo", "Azriel"},
    {"Belle", "Camila", "Clara", "Elize", "Felicity"},
    {"Isabel", "Irish", "Kaila", "Kitchy","Kianna"},
    {"Lucas", "Miracle", "Natalia", "Primo", "Paris"},
    {"Rafael", "Ryan", "Rico", "Sky", "Serafine"},
    {"Samantha", "Scott", "Timothy", "Theo", "Tyron"},
    {"Winter", "Xyler", "Yohan", "Zachary", "Zhea"}
  };
  for (int row = 0; row < 8; row++) {
    for (int col = 0; col < 5; col++) {
      printf("%s\t", name[row][col]);
    }
    printf("\n");
  }
  return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:24:00