不熟悉C,请纠正我的任何错误。
这里的有些法典:
void db_cstr(char* cstr, int len) {
char* temp2 = cstr;
cstr = (char*)malloc(len*2*sizeof(char));
// print 1
printf(cstr);
printf("
");
//print 2
printf(temp2);
printf("
");
strcpy(cstr, temp2);
//free
free(temp2);
//print 3
printf(cstr);
}
int somefunction(){
int array_len = 10;
char* cmd = (char*)malloc(array_len*sizeof(char));
strcpy(cmd, "apple");
db_cstr(cmd, array_len);
// final print
printf(cmd);
return 1;
}
我的数值(途径)为//印刷1=“”和/印刷2=“pple”,/印刷3=“pple”。 然而,当我做最后印刷时,就没有印刷。 我假定这一点与自由(第2段)有关;因此,我评论说,最后印刷是“pple”。 我认为,这是因为某些功能的圆柱形点仍然指温2的释放阵列。 你们如何把 cm点点点指在 d中的新方体。 (我不想干).,不敢回去。)