ポインタについて教えてください
Posted: 2011年1月24日(月) 22:56
ポインタについて教えてください。
ポインタについて、勉強しています。
以下の4つの関数をつくり,値を取得し表示したいのですが、
①の場合は分かるのですが、
②の場合正しい表示がされるようにしたいので教えてください
(各関数の引数、変数は変更可能)
・int main(void) //値の表示
・bool Wrapper(int *pw, int type)
・void setdate(int *p) //ポインタに実際に値を入れる
・int *getdate() //値のアドレスを返す
問題
①main関数から、Wrapper関数を経由して、set関数から値を取得し、表示する
意図として実施したい内容は、main内で、実態を宣言し、setdate関数内で値を代入し、main関数内で表示
②main関数から、Wrapper関数を経由して、get関数から値を取得し、表示する
意図として実施したい内容は、main内でポインタを宣言し、getdate内で実態を宣言しそのアドレスをかえし、main関数内で表示
以下がソースになります
ポインタについて、勉強しています。
以下の4つの関数をつくり,値を取得し表示したいのですが、
①の場合は分かるのですが、
②の場合正しい表示がされるようにしたいので教えてください
(各関数の引数、変数は変更可能)
・int main(void) //値の表示
・bool Wrapper(int *pw, int type)
・void setdate(int *p) //ポインタに実際に値を入れる
・int *getdate() //値のアドレスを返す
問題
①main関数から、Wrapper関数を経由して、set関数から値を取得し、表示する
意図として実施したい内容は、main内で、実態を宣言し、setdate関数内で値を代入し、main関数内で表示
②main関数から、Wrapper関数を経由して、get関数から値を取得し、表示する
意図として実施したい内容は、main内でポインタを宣言し、getdate内で実態を宣言しそのアドレスをかえし、main関数内で表示
以下がソースになります
#include <stdio.h>
#include "StdAfx.h"
#include <string.h>
#include <stdlib.h>
int *getdate()
{
static int num = 100;
return #
}
void setdate(int *p)
{
*p = 1;
}
void Wrapper(int *pw, int type)
{
if( type == 0)
{
printf("pw[%d]\n",*pw);
pw = getdate();
printf("pw[%d]\n",*pw);
}
else if( type == 1)
{
setdate(pw);
}
}
void main()
{
int *pget; //getの取得用
int set; //setの取得用
pget = (int *)malloc(sizeof(int));
Wrapper(pget, 0);
printf("pget[%d]\n", *pget); // =100
Wrapper(&set,1);
printf("set[%d]\n",set);
}