小编Moh*_*pta的帖子

为什么使用char **会导致在char *有效的地方出现段错误?

第1部分

int main(int argc, char **argv)
{
    int             fd;
    int             i;
    char            *line;

    if (!(fd = open(argv[1], O_RDWR | O_CREAT)))
    {
        printf("Error in open\n");
        return (0);
    }
    while ((i = get_next_line(fd, &line)) > 0)
    {
        printf("%i-%s\n",i, line);
        free(line);
    }
    printf("%i-%s",i, line);
    free(line);
}
Run Code Online (Sandbox Code Playgroud)

第2部分

int main(int argc, char **argv)
{
    int             fd;
    int             i;
    char            **line;

    if (!(fd = open(argv[1], O_RDWR | O_CREAT)))
    {
        printf("Error in open\n");
        return (0);
    }
    while ((i = get_next_line(fd, line)) > 0)
    {
        printf("%i-%s\n",i, *line); …
Run Code Online (Sandbox Code Playgroud)

c pointers double-pointer

3
推荐指数
1
解决办法
52
查看次数

标签 统计

c ×1

double-pointer ×1

pointers ×1