![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.6
- 回答日時:
こういう手はありですよね。
#include <stdio.h>
#include <malloc.h>
typedef struct{
char a;
int b;
} Fuga;
Fuga* Fuga_new(void)
{
Fuga *this;
this = (Fuga *)malloc( sizeof(Fuga) );
this->a = 1;
this->b = 2;
return this;
}
void Fuga_print(Fuga *this)
{
printf("a = %d, b = %d \n", this->a, this->b );
}
void Fuga_delete(Fuga *this)
{
free(this);
}
void main(void){
Fuga *fuga;
fuga = Fuga_new();
Fuga_print( fuga );
Fuga_delete( fuga );
}
動作確認済みです。
(参考)
http://www.sage-p.com/process/cool.htm
No.5
- 回答日時:
上位関数で実体を一切確保せずにポインタを下位関数に渡し、下位関数で実体を確保することは不可能です。
上位関数で「ポインタを受け取るためのポインタ」を用意し、それを下位関数に渡すことは可能です。その場合、上位関数では「ポインタを受け取るための場所」という実体をまず確保し、そのポインタを下位関数に渡すことになります。
No.3
- 回答日時:
int* do_something() {
int* result = malloc(sizeof(int)*N);
....
return result;
}
ただし、受け取った結果は速やかに free すべし。
この回答への補足
すみません
記述されているのは、下位関数ですよね?
下位関数の戻り値を上位関数が取得するのではなく
下位関数へ引数で渡した場合は、実現できるのでしょうか?
下記のコーディングのように実施した場合
sub()コール後にaaaの参照は可能でしょうか?
int
main()
{
int* aaa = NULL;
sub(aaa);
return 0;
}
int
sub(int *aaa)
{
aaa = malloc();
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- C言語・C++・C# C言語で構造体の参照渡しができません 2 2022/12/18 21:22
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、写真のプログラムをどう直せ 2 2022/07/09 21:13
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- 数学 代数学 環 1 2022/10/12 17:29
- C言語・C++・C# C言語 配列とポインタについて 2 2022/06/02 11:53
- C言語・C++・C# C言語について。 3 2022/11/05 20:30
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
fopne で失敗する原因
-
Run-Time Check Failure #3とい...
-
LPSTR型の初期化について
-
init関数の意味
-
【なぜポインタを使うのか】
-
関数の引数をvoid*でキャストする
-
ポインタについて
-
参照型で受け取った引数をポイ...
-
戻り値で構造体を返すことは可...
-
アプリを32bitから64bit移行
-
VBはCを混乱させる?
-
リトルエンディアンというもの...
-
C言語の習得度別お勧め参考書
-
関数ポインタの利点
-
main(int argc,char **argv[])...
-
TCHAR文字列内の検索について
-
CObArrayとCPtrArrayの違い
-
ASPでACCESSマクロのNZ関...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
init関数の意味
-
C言語のポインタに直接アドレス...
-
fopne で失敗する原因
-
Run-Time Check Failure #3とい...
-
C言語の関数と配列に関する質問
-
LPSTR型の初期化について
-
戻り値で構造体を返すことは可...
-
参照型で受け取った引数をポイ...
-
構造体とfscanf
-
ExcelVBAでのkernel32(64bit)
-
アプリを32bitから64bit移行
-
Cで作成したDLL関数をVBから呼...
-
C言語でのconstを返す関数
-
main(int argc,char **argv[])...
-
DLL<->VB間での受け渡し(文字...
-
エラーの意味
-
PASCALとFARの意味
-
ハンドルはポインタか
-
CWnd::EnableWindow()の扱い方
おすすめ情報