
関数の戻り値を構造体の配列(アドレスを受け渡しを利用して)にしたいのですがうまくゆきません。
以下のプログラムではコンパイルはできるのですが、
a0 = 2
a1 = 4198512
a2 = 4329332
と表示されてしまいa1,a2がうまくゆきません。
*********************************************
#include<stdio.h>
struct test{
int a;
};
struct test *func(void);
void main(void)
{
struct test *data;//構造体ポインタ
int i;
data = func(); //ポインタにtest関数の戻り値(アドレス)を代入
for(i=0;i<=2;i++){
printf("a%d = %d\n",i,(data+i)->a); //構造体要素を表示
}
}
struct test *func(void)
{
struct test data[3]={1,2,3}; //構造体配列を定義
return (&data[0]); //構造体配列の先頭アドレスを返す
}
*************************************************
test関数から受ける取ったアドレス(&data[0])をポインタ(data)に代入して1づつずらして表示させれば
a0=1,a1=2,a=3
となると思ったのですがどこが間違っているのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
struct test data[3]={1,2,3};
auto変数は関数からの脱出時になくなってしまいます。
static struct test data[3]={1,2,3};
静的変数として宣言しましょう。
return (&data[0]); //構造体配列の先頭アドレスを返す
ここは
return (data); //構造体配列の先頭アドレスを返す
こうじゃないと警告が出ませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数から配列を返すには?
-
define で 配列
-
配列の要素数に変数を入れたい...
-
C言語 ファイルの指定された行...
-
MFC - ダイアログボックスのPic...
-
C#で配列が空かを判定するには?
-
C#で構造体の配列を持った構造...
-
C#でのフィボナッチ数列
-
構造体のextern方法
-
C言語の課題が出たのですが自力...
-
c言語
-
callocで二次元配列を作成する...
-
c言語の初期化について
-
IPアドレスを配列に代入する方法。
-
エラーが出てしまいます
-
変数に入れた情報が記憶されて...
-
C++DLLからC#へのコールバック...
-
[C++]const int と配列
-
C言語 数値の連続入力について
-
C++:構造体:newで入れ子:del...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数から配列を返すには?
-
配列の要素数に変数を入れたい...
-
define で 配列
-
C#で構造体の配列を持った構造...
-
コンボボックスでデフォルト値...
-
C#で配列が空かを判定するには?
-
MFC - ダイアログボックスのPic...
-
構造体のextern方法
-
C言語において、 配列要素をひ...
-
C言語の2次元配列 容量が大き...
-
配列のアドレス部
-
配列の配列をmemcpyやmemcmpし...
-
万年カレンダーについて。
-
C言語 ファイルの指定された行...
-
この変数名はわかりにくいですか?
-
MFCのCArrayを使った二次元配列
-
fclose()でセグメンテーション違反
-
c言語
-
C言語の配列のコピーについて
-
マルチスレッド環境での配列使...
おすすめ情報