ChaosSpring 2022-04-03 09:17 采纳率: 100%
浏览 43
已结题

c++二维数组在不同函数之间传递

char additional_part()
{

    /* ifstream */

    ifstream textfile;
    textfile.open("ignore.txt");
    textfile >> noskipws;
    int row = cal_row_ignore_file(); // row = 7
    char **ig_word = new char *[row]; // setting up two-dimensional arrays
    for (int i = 0; i < row; i++)
    {
        ig_word[i] = new char[51];
    }
    for (int i = 0; i < row; i++) // read file contents
    {
        textfile.getline(ig_word[i], 51, '\n');
    }
    textfile.close();

    /* process */
    int w_len[row];
    for (int i = 0; i < row; i++)
    {
        w_len[i] = strlen(ig_word[i]);
    }
    for (int i = 0; i < row; i++)
    {
        *ig_word[i] = *u2l(ig_word[i], w_len[i]); // uppercase to lowercase
    }

    for (int i = 0; i < row; i++)
    {
        delete[] ig_word[i];
    }
    delete[] ig_word;


    return **ig_word;
}

int main()
{
    // data();
    char **ig_word = new char *[7]; // setting up two-dimensional arrays
    for (int i = 0; i < 7; i++)
    {
        ig_word[i] = new char[51];
    }
    **ig_word = additional_part();
    for (int i = 0; i < 7; i++)
    {
        cout << ig_word[i] << endl;
    }
    return 0;
}

我想做一个二维数组的指针传递,但是在main函数中,接收时英文单词变乱码了,想知道问题原因

  • 写回答

1条回答 默认 最新

  • Frank_Liuxing 2022-04-03 11:17
    关注

    你这个代码错误比较多。二维数组的传递一般方法是在函数外申请二维数组,传递进函数,函数内修改内容,main函数中调用之后,data就是修改过的数据。例如:

    /**
    *@param data 二维数组的指针
    *@param m  二维数组的列数
    *@param n 二维数组的行数
    */
    void func(char** data, int m, int n)
    {
          //对data进行修改,
    }
    
    void main()
    {
        char data[10][10];
        func(data, 10, 10);
    }
    

    你这个地方就可以把ig_word作为参数传进去,在函数里面直接给ig_word赋值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 创建了问题 4月3日

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题