我在編寫一個函數時遇到了麻煩,該函數將指針指向全局嵌套結構的地址。 但我想這是在一個函數內完成的,而不是在主 請幫我寫這個函數。在此先感謝函數指向全局嵌套結構
#include "stdio.h"
typedef struct
{
int c;
}code;
typedef code* p_code ;
typedef struct
{
char a;
int b;
code krish;
}emp;
emp Global_Sam;
int main()
{
code tmpcode_krish;
code* pcode_krish;
pcode_krish = &tmpcode_krish;
printf("Goal %p %p \r\n ", &(Global_Sam.krish), &(Global_Sam).krish);
memset(pcode_krish, 0 , sizeof(code));
// pcode_krish = &Global_Sam.krish;
PointNestedStructToPointer(&pcode_krish);
printf("Goal=> both should be same => %p %p \r\n ", &(Global_Sam.krish), pcode_krish);
return 0;
}
這裏, =>pcode_krish = &Global_Sam.krish;
這將指向全球嵌套結構。但我需要做一個函數,因此函數內部,PointNestedStructToPointer
void PointNestedStructToPointer(p_code *dst)
{
dst = &Global_Sam.krish;
}
上述功能並不能反映全球嵌套結構的確切地址,我已經把打印驗證。在PointNestedStructToPointer()
在進行分配時,請幫
你期望的目的地所經歷的變量指向全球價值之後,還是隻保留當前值? – 2011-01-21 02:46:30
@Chris OP表示他希望通過他的函數調用來模仿`pcode_krish =&Global_Sam.krish`(註釋掉的行)。 – chrisaycock 2011-01-21 02:52:15