トリッキーな構造 ダンプを与えずに反復するポインター
構造ポインタがダンプを与えていない
#include <iostream>
#include <malloc.h>
#include <conio.h>
using namespace std;
typedef struct
{
int k;
}struct1;
typedef struct
{
int i;
char *ptr;
int len;
struct1 otherinstance;
}struct2;
int func(struct2 *instance,int y)
{
int res = 0,i=0;
for(i=0;i<y;i++)
{
instance[i].otherinstance.k = 10;
printf("Data = %d\n",instance[i].otherinstance.k);
}
return res;
}
int main()
{
int x =3;
struct2 *instance1 = (struct2*)malloc(sizeof(struct2));
func(instance1,3);
cin.get();
return 0;
}
/*
Output:
Data = 10
Data = 10
Data = 10
*/
上記のコードを分析してください。構造体へのポインターを受け入れる関数名「func」があります。関数「func」内で、構造体の配列を反復処理しています:「SHOULD GIVE DUMP」。
ツール: dev c++ ウィンドウ