#include<stdio.h> #include<stdlib.h> #include<string.h> #define da 100 int add(char *p){ p=(char*)malloc(da*sizeof(char)); scanf("%100s",p); int size=strlen(p); if(size==da) p=(char*)realloc(p,(da+10)*sizeof(char)); return 0; } int main(void){ char *p,*t; int size,nbytes; add(p); add(t); size=strlen(p); nbytes=strlen(t); if(size!=nbytes){ printf("两次数据大小不一\n"); return -1; } printf("%d\n",size); printf("%s\n",p); printf("%c\n",p[1]); free(p); free(t); return 0; }
这些代码编译通过,但是运行时 输入完字符串以后会提示段错误, 如果去掉add函数,把add里的东西都放到main里 程序编译完后正常运行,,这是为啥 指针要怎么传入
相关分类