08/02/23 16:26:11
f(x)のあとでstrlen(ch)が1になることがあります もとのソースを簡略にしました
構造体を参照渡ししてもだめでした 下は期待通りの動作をします 何がいけないのかわかりません
#include <string.h>
#include <stdio.h>
typedef struct STRDATA{ char *start; char *end;}strdata;
f(strdata x){
delete x.start;
x.start = new char [20];
strcpy(x.start,"++++++++++++++"); }
main(){
char *ch=new char [10]; strcpy(ch,"uuuu");
strdata x;
x.start=ch; x.end=ch+strlen(ch);
f(x);
printf("%s",ch);}