小编dam*_*mir的帖子

分配字符数组并打印第一个条目

当我运行这个我在printf上得到segv时,我做错了什么?

int main() {
        char **bla;
        int size =10;
        int i;

        bla = calloc(size*size,sizeof(char *));

        for(i=0;i<size;i++) {
                *bla = calloc(10,sizeof(char));
                strncpy(*bla,"aaaaa",size);
                bla++;
        }

        printf("%s\n",bla[0]);
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做

int main() {
        char **bla;
        int size =10;
        int i;

        bla = calloc(size*size,sizeof(char *));

        for(i=0;i<size;i++) {
                bla[i] = calloc(10,sizeof(char));
                strncpy(bla[i],"aaaaa",size);
        }



   printf("%s\n",bla[0]);
   }
Run Code Online (Sandbox Code Playgroud)

但有没有办法用指针做到这一点?

c

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

标签 统计

c ×1