1.例1:
void ChangeInteg(int* tmp){
*tmp = 20;
}
void ChangeStr(char** tmp){
*tmp = "miss you,miss chen.";
}
int main(){
int a = 10;
char* b = "love you,miss chen.";
ChangeInteg(&a);
ChangeStr(&b);
printf("a = %d \n",a);
printf("b = %s \n",b);
}
例2:
int CopyStr(char** mytmp1, int* mytmp1len, char** mytmp2, int* mytmp2len){
char* buff1 = (char*)malloc(16*sizeof(char));
char* buff2 = (char*)malloc(16*sizeof(char));
strcpy(buff1,"Hello motto");
*mytmp1len = strlen(buff1);
*mytmp1 = buff1;
strcpy(buff2,"Harry up.");
*mytmp2len = strlen(buff2);
*mytmp2 = buff2;
return 0;
}
int main(){
char* tmp1 = NULL;
char* tmp2 = NULL;
int tmp1len = 0;
int tmp2len = 0;
CopyStr(&tmp1,&tmp1len,&tmp2,&tmp2len);
printf("%s %d \n",tmp1,tmp1len);
printf("%s %d \n",tmp2,tmp2len);
if(tmp1 != NULL){
free(tmp1);
tmp1 = NULL;
}
if(tmp2 != NULL){
free(tmp2);
tmp2 = NULL;
}
return 0;
}
例3:
void CutSpace(char* resc, char* out){
int j =0;
int i = 0;
while(*(resc + i)){
if(*(resc + i) != ' ')
out[j++] = *(resc + i);
i ++;
}
out[j] = '\0';
return;
}
void PrintStr(char* instr, char* outstr, int num){
int i = 0;
for(; i < num; i++){
outstr[i] = instr[i];
}
outstr[num] = '\0';
return;
}
int GetKeyValue(char* myresc, char** mykey, char** myvalue, int* mylen){
int left = 0;
char* tmprese = myresc;
char* tmpvalue = NULL;
char* out = (char*)malloc(16);
char* str= (char*)malloc(16);
CutSpace(tmprese, out );
tmpvalue = strrchr(out, '=');
*myvalue = tmpvalue + 1;
*mylen = strlen(*myvalue);
left = strlen(out) - *mylen -1;
PrintStr(out, str, left);
*mykey = str;
return 0;
}
int main(){
char* resouce = " key1 = 1990/07/14 ";
char* keystr = NULL;
char* valuestr= NULL;
int lenght = 0;
GetKeyValue(resouce, &keystr, &valuestr, &lenght);
printf("keystr = \"%s\" \nvaluestr = \"%s\" \nlenght = %d\n",keystr ,valuestr,lenght );
return 0;
}