作者chrisjon (虫虫终於找到你家)
看板C_and_CPP
标题[语法] 结构、指标 与 二维阵列
时间Fri Sep 4 16:06:34 2009
爬文结果,大多是一维或非结构,所以自己试写一下
目的:把seed写在结构中(有需要用到)
然後把seed设定二维阵列
下面程式只是纯粹测试state->seed[a][b]有无办法使用
======================================
#include <stdio.h>
typedef unsigned long long b64;
typedef struct {
int mcgi,flaga,flagb;
b64 *seed[2][97];
}tt_index;
int main(void)
{
tt_index *state;
state->seed[1][1] = 5;
printf("state->seed[1][1]=%d\n", state->seed[1][1]);
return;
}
======================================
爬文看到有人直接把一维写在struct里,所以在struct里设二维试试
compile能过,但是执行却失败了
或者需要设定二(多)层指标吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.137.179
1F:→ james732:看不太懂你想要做的事情是什麽…? 09/04 16:11
2F:推 VictorTom:state是一个pointer, 没有自己的实体空间, 要嘛不要用* 09/04 16:18
3F:→ VictorTom:那麽可以state.seed, 要嘛你要malloc/new帮它要一个空间 09/04 16:19
4F:→ VictorTom:不然你这样只是存取了一个不知道在哪里的指标, 是应该要 09/04 16:19
5F:→ VictorTom:access violation / run time error的....@_@" 09/04 16:19
6F:→ chrisjon:那请问一下,如果原始一维阵列已经可以使用,转成二维阵列 09/04 16:25
7F:推 VictorTom:struct里只要memory塞的下, 要几维都没关系吧.... 09/04 16:26
8F:→ VictorTom:问题1. 你state只是一个指标, 你不能在未分配空间之前就 09/04 16:26
9F:→ VictorTom:直接access它的member; 又, 你的seed看起来也宣告成了指 09/04 16:26
10F:→ VictorTom:标型式, 这里看起来不太有意义, seed应该只是二维的b64 09/04 16:27
11F:→ VictorTom:array而已吧?? 09/04 16:27
※ 编辑: chrisjon 来自: 123.195.137.179 (09/04 16:29)
12F:→ chrisjon:嗯嗯!我看书上没写到malloc/new相关的字样,所以也不太清 09/04 16:37
13F:→ chrisjon:楚。不过想到一个替代方案了,感谢前辈的解释(m_ _m) 09/04 16:38