#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里? 程序編譯完后正常運行,,這是為啥? 指針要怎么傳入
- 1 回答
- 2 關注
- 1480 瀏覽
添加回答
舉報
0/150
提交
取消