【初心者歓迎】C/C++室 Ver.49【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.49【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト471:デフォルトの名無しさん 08/02/23 23:48:55 これがたまたまうまく動いたりしますが、実際は間違っているから困っているんです #include <stdio.h> #include <string.h> typedef struct { char *start ; char *end; } bin; void f(bin *x) { delete x->start; x->start = new char [3]; strcpy(x->start,"aa"); } main() { char *ch = new char [2]; strcpy(ch,"a"); bin x; x.start=ch; x.end=ch+strlen(ch); f(&x); printf("%s",ch); } 472:デフォルトの名無しさん 08/02/23 23:50:11 >>470 http://www.google.co.jp/search?q=C%2B%2B+3%E6%A1%81+%E3%82%B3%E3%83%B3%E3%83%9E&btnG=%E6%A4%9C%E7%B4%A2&lr= 473:デフォルトの名無しさん 08/02/23 23:53:13 x.start=ch; とした時点で、数値がコピーされるだけになり、文字列を書き換えられなくなります だから x.start=&ch;と参照渡しをするために 構造体を { char **start ; char **end; }に変更します そうすると上記のような現象が出ます 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch