当我运行这个我在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