水木社区手机版
首页
|版面-C程序设计语言(CProgramming)|
新版wap站已上线
返回
1/1
|
转到
主题:有什么语法技巧实现“变长数组给指针赋值”吗?
楼主
|
iidev9
|
2023-11-27 23:35:13
|
只看此ID
比如有个
struct A{
int *p;
int num;
};
A g_arr[2] = {
{{1,2,3},3},
{{1,2,3,4,5},5}
};
以上,我希望p指向一个数组首地址,这个数组就是初始化列表里的{1,2,3}。
当然,这样是可以的,但q1的定义有点多余。
int q1[]={1,2,3};
int q2[]={1,2,3,4,5};
A g_arr[2] = {
{q1,3},
{q2,5}
};
--
FROM 114.249.185.*
1楼
|
slowaction
|
2023-11-28 08:53:41
|
只看此ID
既然是变长,那就放弃静态赋值吧
直接把指针指向你的数据地址就行了
【 在 iidev9 的大作中提到: 】
: 比如有个
: struct A{
: int *p;
: ...................
--
FROM 117.30.164.*
2楼
|
fieldingzhu
|
2023-11-28 14:53:52
|
只看此ID
{1, 2, 3}是个常量,哪来的地址,只有q1这种变量谈地址才有意义
--
FROM 120.238.65.245
3楼
|
iidev9
|
2023-11-28 21:45:28
|
只看此ID
如果编译器能支持,我就不用额外定义一个q1这样的变量了
【 在 fieldingzhu 的大作中提到: 】
: {1, 2, 3}是个常量,哪来的地址,只有q1这种变量谈地址才有意义
--
FROM 114.249.185.*
4楼
|
iidev9
|
2023-11-28 21:46:20
|
只看此ID
主要是不直观,如果这些配置数据能集中在一起就好了
【 在 slowaction 的大作中提到: 】
: 既然是变长,那就放弃静态赋值吧
: 直接把指针指向你的数据地址就行了
--
FROM 114.249.185.*
5楼
|
slowaction
|
2023-11-28 21:54:32
|
只看此ID
那就是一个古老的技巧
{
int len
char buf[0]
}
这个有点难理解了
【 在 iidev9 的大作中提到: 】
: 主要是不直观,如果这些配置数据能集中在一起就好了
--
FROM 117.30.164.*
6楼
|
fieldingzhu
|
2023-11-29 08:32:39
|
只看此ID
那你不如创建一个函数,动态创建数组然后返回地址
【 在 iidev9 的大作中提到: 】
: 如果编译器能支持,我就不用额外定义一个q1这样的变量了
--
FROM 120.238.65.245
7楼
|
iidev9
|
2023-11-30 00:00:31
|
只看此ID
你可能没理解我的需求
我只是想要把这些配置数据放在一起写,分开来放到不同变量里是可以的,但看数据不方便,需要来回翻页
【 在 fieldingzhu 的大作中提到: 】
: 那你不如创建一个函数,动态创建数组然后返回地址
--
FROM 114.249.185.*
8楼
|
z16166
|
2023-11-30 00:47:21
|
只看此ID
配置数据放到json/xml/yaml里,自己parse成对应的内存结构,哈哈
【 在 iidev9 的大作中提到: 】
: 你可能没理解我的需求
: 我只是想要把这些配置数据放在一起写,分开来放到不同变量里是可以的,但看数据不方便,需要来回翻页
--
FROM 61.48.130.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版