首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数调用中初始化为参数的Struct成员char *

函数调用中初始化为参数的Struct成员char *
EN

Stack Overflow用户
提问于 2015-08-26 05:37:44
回答 3查看 57关注 0票数 0

这更多的是出于好奇,而不是我希望或需要它的工作方式。但当我做一些模特儿想测试一些东西的时候,我最终得到了这样的结果.不知道为什么不像我预料的那样起作用。

代码语言:javascript
运行
复制
typedef struct {
    char *a;
    char *b;
    char *c;
}mystruct;

void init_chars (char *arg)
{
    arg = malloc (sizeof (char)*10);
    arg = "0123456789";
    printf ("%s\n", arg);
}

int main ()
{
    mystruct *msp = malloc (sizeof (mystruct));
    init_chars (msp->a);
    init_chars (msp->b);
    init_chars (msp->c);
    printf ("%s, %s, %s\n", msp->a, msp->b, msp->c);
    return 0;
}

指纹..。

代码语言:javascript
运行
复制
0123456789

0123456789

0123456789

(null),(null),(null)
EN

Stack Overflow用户

发布于 2015-08-26 05:56:50

代码语言:javascript
运行
复制
typedef struct {
    char *a;
    char *b;
    char *c;
}mystruct;

void init_chars (char **arg)
{
    *arg = malloc (sizeof (char)*11);
    if(*arg == NULL)
    {
        printf("malloc failed!");
        exit(-1);
    }
    strcpy(*arg,"0123456789");
    printf ("%s\n", *arg);
}

int main ()
{
    mystruct *msp = malloc (sizeof (mystruct));
    if(msp == NULL)
    {
        printf("malloc failed");
        exit(-1);
    }
    init_chars (&msp->a);
    init_chars (&msp->b);
    init_chars (&msp->c);
    printf ("%s, %s, %s\n", msp->a, msp->b, msp->c);
    free(msp->a);
    free(msp->b);
    free(msp->c);
    free(msp)
    return 0;
}

产出:

0123456789

0123456789

0123456789

0123456789,0123456789,0123456789

与您的代码进行比较,您将了解为什么

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32218726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档