gpt4 book ai didi

c - 从 stdin 动态分配行?

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:06 26 4
gpt4 key购买 nike

我正在尝试读取一个包含 10 行不同长度(不会超过 349 个字符)的文件,并将它们存储在一个动态分配的数组中,以便以后能够对其进行操作。我有下面的代码,它给了我一个“警告:传递 âstrcpyâ 的参数 1 使指针来自没有强制转换的整数”消息。

我这里做错了什么?我的逻辑是,地址应该是指向指针数组的指针,其中数组中的每个指针都指向字符串中的一行,我会尝试通过对该行使用指向该点的 strcpy 来实现这一点。

    char buffer[350];
char** addresses;
int i = 0;

*addresses = malloc(sizeof(char*)*10); /* Let's start off with 10 addresses */

while(fgets(buffer, sizeof(buffer), stdin) != NULL)
{
strcpy(*addresses[i],buffer);
i++;
}

最佳答案

你有几个问题:

  1. 语法:

    使用

    strcpy(addresses[i],buffer);

    代替

    strcpy(*addresses[i],buffer);
  2. 内存:

    您需要为addresses[i] 分配内存,然后才能将buffer 的内容复制到它。

    在调用 strcpy 之前添加一行为 addresses[i] 分配内存。

    addresses[i] = malloc(sizeof(buffer));

关于c - 从 stdin 动态分配行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29465594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com