【问题标题】:Adding struct value to char array in C在C中将结构值添加到char数组
【发布时间】:2022-01-18 02:57:07
【问题描述】:

我有一些价值。说是

dir->d_name;

我想将此值添加到 char 数组中

char fileNames[100];

我创建了一个临时 char 值试图分配 dir->d_name

char temp_fileName;
temp_fileName = dir->d_name;

我该怎么做,或者我应该将 dir->d_name 转换为 char 或 string?

警告:从 'char*' 赋值给 'char' 使指针变成整数 没有演员表

【问题讨论】:

    标签: c linux compiler-warnings


    【解决方案1】:

    正如警告所说,这是char*char 指针),而不是char

    char* temp_fileName;
    /*  ^-- Here */
    temp_fileName = dir->d_name;
    

    【讨论】:

      【解决方案2】:

      如果要存储引用(指针):

      char *temp_fileName;
      temp_fileName = dir->d_name;
      

      如果要存储字符串的副本:

      char *temp_fileName = strdup(dir->d_name);
      

      char *temp_fileName = malloc(strlen(dir ->d_name)+1);
      if(temp_fileName) strcpy(temp_fileName, dir ->d_name);
      

      或者如果temp_fileName 是一个自动变量

      char temp_fileName[strlen(dir ->d_name)+1];
      strcpy(temp_fileName, dir ->d_name);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-02
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 2016-03-07
        • 1970-01-01
        • 2011-04-03
        相关资源
        最近更新 更多