【初心者歓迎】C/C++室 Ver.49【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.49【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト414:デフォルトの名無しさん 08/02/23 22:00:25 スタックとかヒープとか、この際関係ないレベルじゃん 415:デフォルトの名無しさん 08/02/23 22:02:39 より短くしました これでも外すと壊れます なぜですか? #include <string.h> #include <stdio.h> #include <stdlib.h> typedef struct { char **st; char **end; }strdata; f(strdata *q){ char *ch=(char *) malloc(10); strcpy(ch,"abcdef"); q->st=&ch; } g(strdata *zzz){ printf("%s",*(zzz->st)); } main(){ strdata str; f(&str); //char *test=new char [1]; g(&str); } 416:デフォルトの名無しさん 08/02/23 22:03:36 >>409 多少手を入れて(int mainとするとか)こっちで動かしてみましたが、ちゃんとabcdefghと表示されました。 でも、newだけc++の機能をつかってるけど、あとは全部(結構年季が入った感じの)cだし、 c++のコンパイラなら、関数の戻り値を指定しないのはダメだと思うし、 mallocとnew は併用したらダメだってどこかで聞いたけどな。 いまいちやろうとしていることの意図がつかめません。 (mallocとnewを併用して、どういう状況でまずいのかしらべようとしているのか) もしc++を勉強しようとしているなら、なにか適当な本とかで勉強するのを勧めます。 Cを上記くらいご存知なら、すぐにC++も使えるようになりますよ。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch