首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何为结构中指针指向的数组元素插入值

如何为结构中指针指向的数组元素插入值
EN

Stack Overflow用户
提问于 2011-10-02 09:46:40
回答 1查看 57关注 0票数 0

我目前有一个结构,它包含一个指向指针数组的指针。我试图给指针数组中的一个元素赋值,但我得到了一个分段错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
aStruct->anArray[0]->string = test;

aStruct包含字符** anArray和字符*字符串。char *test = "test“。

当我尝试做我所做的事情时,我得到一个分段错误。该命令无效吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
struct aStruct
{
   char **anArray;
};

我使用calloc生成了一个大小为10的数组。

EN

回答 1

Stack Overflow用户

发布于 2011-10-02 09:52:53

aStruct->anArray->string =测试;

aStruct包含字符** anArray和字符*字符串。char *test = "test“。

该命令无效吗?

哪儿有的事儿。当然不是。aStruct->anArray[0]应该是char*,并且不会有成员->string

除此之外,如果它真的可以编译,而您只是发布了错误的代码,那么如果anArray被正确分配并具有正确的大小,就不会出现分段错误。所以在你的程序中你需要这样的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
aStruct->anArray = malloc(size * sizeof(*aStruct->anArray));

其中size对于您的情况至少为1,但通常是您需要访问的元素的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7625650

复制
相关文章
C++指向数组元素的指针
在C++中,一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址;指针变量既然可以指向变量,也可以指向数组元素,所谓数组元素的指针就是数组元素的地址。
小林C语言
2020/12/15
2.2K0
C++指向数组元素的指针
指针数组与指向指针的指针
指针数组与指向指针的指针 http://wlkc.gdqy.edu.cn/jpkc/portal/blob?key=173314 指针数组和数组指针的区别 http://allew.blog.163.
阳光岛主
2019/02/19
1.9K0
指针数组——元素为指针的数组
叶茂林
2023/07/28
1240
c语言之指向二维数组元素的指针变量
首先我们需要明确的是:二维数组在内存中是连续的,比如一个二维数组int a[2][3]={1,2,3,4,5,6},可以视作是两个一维数组构成的,即int a0[3] ={1,2,3},int a1[3] = {4,5,6},我们知道,一维数组在内存中是连续的一块内存,并且数组名a0,a1代表的就是该数组首元素的地址,而正因为二维数组的内存中的地址也是连续的,所以a1的首元素的地址就为a0数组首元素的地址+a0中元素的个数,因此,我们就可以通过让指针不断+1来访问其中的每一个元素,不用再考虑行与列的限制。
西西嘛呦
2020/08/26
1.3K0
c语言之指向二维数组元素的指针变量
C++ 中关于指向数组的指针与指针数组的一些思考
在 C++ 中,可以将一个指针指向某个数组,也可以使用一个指针数组指向一个数组。这二种方式的具体使用请看以下代码:
耕耘实录
2022/05/09
1.5K0
JAVA中的数组插入与删除指定元素
今天学了Java的数组,写了数组的插入和删除,本人小白,写给不会的小白看,大神请忽略,有错请大家指出来;
全栈程序员站长
2022/09/13
3.1K0
C++指向结构体变量的指针
C++中,一个结构体变量的指针就是该变量所占据的内存段的起始地址,指针变量也可以用来指向结构体数组中的元素。
小林C语言
2020/12/31
2.9K0
C++指向结构体变量的指针
函数指针数组指针+结构体数组
/***************** 结构体数组 计算一个班学生四门课程平均分 ************************/ #include <stdio.h> #include <string.h> char *fun1(char *p) { printf("%s\n",p); return p; } char *fun2(char *p) { printf("%s\n",p); return p; } char *fun3(char
用户4645519
2020/09/07
8690
为什么无返回值的链表的插入操作头结点一定要用指向指针的指针
前言: 为什么链表的插入操作头结点一定要用指向指针的指针?之前自己对这个问题总是一知半解,今天终于花了点时间彻底搞懂了。 总的来说这样做的目的是为了应对“空链表”的情况。为了防止往一个空链表中插入一个结点时,新插入的结点那就是链表的头指针,这时如果链表的结点是一级指针的话,那么出了链表插入函数的作用域后,头结点又回到了原来的空值。 比如下面的一段程序 1 // 链表的头指针为什么是指向指针的指针.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h"
用户1215536
2018/02/05
1.4K0
为什么无返回值的链表的插入操作头结点一定要用指向指针的指针
删除数组中某个指定元素的值_如何删除数组中的元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169504.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
12.7K0
函数的返回值指向一个指针
函数的返回值类型必须与函数体内的返回表达式的类型相匹配。如果类型不匹配,编译器会报错。此外,C 语言中的函数只能返回一个值,如果需要返回多个值,可以使用结构体或指针等方式来实现。
云深无际
2023/05/24
7010
函数的返回值指向一个指针
C语言 | 指向指针的指针
这道理放在C语言学习上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。
小林C语言
2021/03/10
3K0
C语言 | 指向结构体变量的指针变量
解题思路:在主函数中声明了struct student类型,然后定义了一个struct student类型的变量s_1,又定义了一个指针变量p,它指向一个struct student类型的对象,将结构体变量s_1的起始地址赋给指针变量p,也就是使p指向s_1,然后对s_1的各个成员赋值。
小林C语言
2020/12/21
1.8K0
C语言 | 指向结构体变量的指针变量
c++常量指针和指针常量_指针指向二维数组
a)常量定义:不可修改的值,例如250,’A’ b)const关键字功能:将变量常量化,四种形式
全栈程序员站长
2022/09/27
7460
c++常量指针和指针常量_指针指向二维数组
《挑战30天C++入门极限》C/C++中字符指针数组及指向指针的指针的含义
  函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢?   如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。 定义一个指向函数的指针用如下的形式,以上面的test()为例: int (*fp)(int a);//这里就定义了一个指向函数的指针   函数指针不能绝对不能指向不同类型,或者是带不同形参的函数,在定义函数指针的时候我们很容易犯如下的错误。 int *fp(int a);//这里是错误的,因为按照结合性和优先级来看就是先和()结合,然后变成了一个返回整形指针的函数了,而不是函数指针,这一点尤其需要注意!   下面我们来看一个具体的例子: #include <iostream> #include <string> using namespace std; int test(int a); void main(int argc,char* argv[]) { cout<<test<<endl;//显示函数地址 int (*fp)(int a); fp=test;//将函数test的地址赋给函数学指针fp cout<<fp(5)<<"|"<<(*fp)(10)<<endl; //上面的输出fp(5),这是标准c++的写法,(*fp)(10)这是兼容c语言的标准写法,两种同意,但注意区分,避免写的程序产生移植性问题! cin.get(); } int test(int a) { return a; }   typedef定义可以简化函数指针的定义,在定义一个的时候感觉不出来,但定义多了就知道方便了,上面的代码改写成如下的形式: #include <iostream> #include <string> using namespace std; int test(int a); void main(int argc,char* argv[]) { cout<<test<<endl; typedef int (*fp)(int a);//注意,这里不是生命函数指针,而是定义一个函数指针的类型,这个类型是自己定义的,类型名为fp fp fpi;//这里利用自己定义的类型名fp定义了一个fpi的函数指针! fpi=test; cout<<fpi(5)<<"|"<<(*fpi)(10)<<endl; cin.get(); } int test(int a) { return a; }
landv
2019/07/15
1.3K0
C/CPP结构中的字符数组和字符指针
一般情况下我们在结构中都使用字符数组来存储字符串,是否可以使用指向char的指针来代替字符数组呢?
CtrlX
2022/10/04
1.5K0
jquery判断数组中是否包含某个元素的值_java判断元素是否在数组中
如果arry数组里面存在”C#” 这个字符串则返回该字符串的数组下标,否则返回(不包含在数组中) -1
全栈程序员站长
2022/11/02
5.8K0
Java数组插入或删除元素
**练习1.随机生成一个整数型数组(1-10数组长度随机,0-50数组元素随机) 在其数组的最后追加一个1-50随机数值**
全栈程序员站长
2022/09/13
1.5K0
Java数组插入或删除元素
指向函数的指针
Author: bakari   Date: 2012.8.8 做好总结我觉得是把知识学扎实必不可少的实践环节。这个知识点是当初自己在学习这一块做的一些笔记,现在在知识提升的情况下将它重新整理一下以作巩固之用。 我们知道一段代码在内存中是由地址的,一个函数在编译时会被分配给一个入口地址,这个地址就是该函数中第一条指令的地址,这就是函数的指针。当调用一个函数时出了通过函数名来调用之外,还可以通过指向该函数的指针变量来调用。切记,和一切指针变量一样,一个指向函数的指针其初值也不能为空。因为它在使用之前必须被赋予
Linux云计算网络
2018/01/10
1.3K0
指向函数的指针
指向函数的指针
程序中定义函数后,对程序进行编译时,编译系统为函数分配一段存储空间存储二进制代码,这段内存空间的起始地址(也称入口地址)称为函数的指针。
pigeon
2022/04/11
8170
指向函数的指针

相似问题

指向结构的指针中指向结构的指针数组。

20

指向指向结构的指针数组的指针。

22

指向结构指针数组的指针

32

结构指针指向结构数组

40

指向指针数组的结构指针

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文