c - 使用 char 矩阵作为函数的参数

标签 c

我试图将一个字符矩阵作为参数传递给另一个函数,但程序一直停止,没有给我任何错误。 我从一个包含以下内容的文件中读取了矩阵(每个值在不同的行上): 6个 AFAA26 7A4255 1C80B6 2C158F DA8204 5A408A

我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void read(char s[100][100],int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%s\n",s[i]);
}

int main()
{
  random();
  FILE *fp=fopen("p1","r");
  int n,i,j;
  fscanf(fp,"%d",&n);
  char s[20][10];
  for(i=0;i<n;i++)
      fscanf(fp,"%s",&s[i]);
  fclose (fp);
  read(s,n);
  return 0;
}

注意:通过在主函数中写入“for(i=0;i<n;i++) printf("%s\n",s[i]);”,它可以正确地读取文件中的值。

谢谢!

最佳答案

声明数组的大小与参数不匹配。

您可以声明相同的尺寸,也许使用 #define 来避免重复,或者查看 this question对于其他(也许更好)的替代品。

关于c - 使用 char 矩阵作为函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55781646/

相关文章:

c++ - 从 recv() 读取多个 "message"

c - 是否有 Windows 等同于标准(ish)UN*X 进程退出代码?

c - 为 C-like/* 注释 block 着色的算法 */

c++ - 在 C 和 C++ 中将 char 转换为 int

c - 使用 CUBLAS/CUSPARSE 操作将统一数组的元素设置为 0 是否安全?

c - 如何使用管道和 scanf() 读取命令输出?

c - 具有有限缓冲区的生产者/消费者

c - 如何参数化提交到外部库的回调函数

c - O_DIRECT 未声明,Eclipse CDT,Ubuntu 20.04

java - 在C++中获取控制台信息