【问题标题】:How to fix error when adding array functions after main?在 main 之后添加数组函数时如何修复错误?
【发布时间】:2026-02-04 12:35:02
【问题描述】:
#include "stdafx.h"
#include <iomanip>
#include <iostream>
#include <fstream>
using namespace std;
void FillArray (int x[50], const int Size);
void PrintArray (int x[50], const int Size);

int main()
{
    const int SizeArray = 10;
    int A[SizeArray] = {0};
    FillArray (A, SizeArray);
    PrintArray (A, SizeArray);

    return 0;
}

void FillArray (int x[50], const int Size)
{
for (int i = 0; i < Size; i++)
    {
        cout << endl << "Please enter an integer: ";
        cin >> x[i];
    }
}

void PrintArray (int x[50], const int Size)
{
for (int i = 0; i < Size; i++)
{
    cout << endl << x[i];
}
}

我得到的错误如下。我必须创建可以分别读取和打印数组的新函数。以上是我的主要功能,后跟读取(填充)数组。但它不会运行。

1>----- 构建开始:项目:一些,配置:调试 Win32 ------ 1> 一些.cpp 1>Some.obj : 错误 LNK2019: 函数 _main 中引用的无法解析的外部符号“void __cdecl PrintArray(int * const,int)”(?PrintArray@@YAXQAHH@Z) 1>C:\Users\GmxTrey\Documents\Visual Studio 2010\Projects\Some\Debug\Some.exe : 致命错误 >LNK1120: 1 unresolved externals ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

【问题讨论】:

  • 抱歉,刚刚添加。它现在可以正常运行,但它只是重复“请输入一个整数:”。

标签: arrays int constants void fill


【解决方案1】:

看起来您的FillArray 已声明并定义,但PrintArray 仅已声明,但未定义;这就是链接器抱怨的原因。您需要提供PrintArray 的定义来解决此问题。

【讨论】:

  • 抱歉,刚刚添加。它现在可以正常运行,但现在只是重复“请输入一个整数:”。没有其他事情发生。
  • @GmxTrey 你是否一个一个地输入十个整数,每个整数后面跟一个[Enter]
  • 在我输入所有十个数字后,它会按照我输入的顺序将它们读回给我,然后我暂停系统。
  • 但这正是您的程序告诉计算机要做的事情:提示用户输入十个整数,将它们存储到一个数组中,然后打印回来!您的程序完全按照编码运行。
  • 对不起,第一次这样做,我的教授解释它的方式,它应该做一堆其他的东西。谢谢您的帮助。欣赏它。