pointers相关内容
我正在编写代码来巩固我的知识,但我遇到了分段错误.所以,我也知道我必须补充(完成不完美的知识)我的知识.问题在于 strtok().当我运行第一个代码时没有问题,但在第二个中,我得到了分段错误.我的“不完善的知识"是什么?感谢您的赞赏回答. 第一个代码 #include #include int main() {char str[] = "team_n
..
我正在学习 C 并尝试创建一个可以创建字符串数组的函数. #include #include #include 无效解析(char ***aoa){char *string = calloc(9, sizeof(char));//创建一个大小为8+1的字符串strcpy(字符串,“嗨世界");//将文本放入该数组char **array
..
我有一个指向类的指针向量.我需要调用它们的析构函数并释放它们的内存.由于它们是指针向量 vector.clear() 不能完成这项工作.所以我继续像这样手动进行: void Population::clearPool(std::vectora,int size){染色体* c;for(int j = 0 ;j
..
我有一个名为 vertex 的结构,并创建了一些指向它们的指针.我想要做的是将这些指针添加到列表中.我下面的代码在尝试将指针插入列表时会产生分段错误.有人可以解释发生了什么吗? #include #include #define NUM_VERTICES 8使用命名空间标准;枚举{白色,灰色,黑色};结构顶点{诠释颜色;整数距离;字符父;};主函数(){//创建顶点顶
..
任何人都可以帮助我解决这个分段错误.这段代码很简单,但错误很难弄清楚. 结构链接{整数键;无符号数据:2;结构链接*下一个;结构链接 *previous;};struct Link* addInOrder(struct Link *, struct Link);int main() {结构链接*头;结构链接数据1;结构链接数据2;结构链接数据3;数据1.key = 25;数据1.数据=1;dat
..
我的代码的目标是接收 2 个命令行参数(包括程序名称),并根据给定的第二个命令行参数打印出如图所示的响应.如果命令行参数是一个整数,则用户的输入被接受或“成功",如果它是其他任何东西(例如,一个字符串或多个命令行参数),它将为 Null 并且将显示错误消息.这是为熟悉的人准备的CS50凯撒 我的代码如下: #include #include #includ
..
下面是我在 C 中的简单链表.我的问题在“headRef = &newNode;"中这会导致分段错误.然后我尝试了“*headRef = newNode;"这解决了段错误问题.尽管在我看来这两行代码以相同的方式工作,但为什么一个会导致 seg fault 而另一行不会呢?提前致谢. 结构节点{整数数据;结构节点*下一个;};无效推送(结构节点** headRef,int数据){结构节点* new
..
我正在学习如何在 C 中使用指针和结构.当然,我试图故意破坏我的代码以进一步了解该语言的工作原理.下面是一些测试代码,可以按我的预期工作: #include #include 结构对{诠释 x;整数y;};typedef 结构对对;无效 p_struct( 对 );//原型int main(int argc,char** argv){对 *s_pair;整数
..
当 dyn_mat 的参数是常量时,代码运行没有任何错误,并且 s1 和 s2 确实存储了输入值. #includeint main(int argc, char const *argv[]){字符 *s1, *s2;整数 n1=7,n2=8;printf("输入, %d \n", n1);scanf("%s", s1);scanf("%s", s2);int dyn_mat[
..
我正在尝试从链表中删除重复项,但遇到了一个问题,这可能很明显而且很简单,但我已经很多年没有使用过 C++ 了,我找不到什么通过阅读关于 SO 的类似问题,我做错了. 以下是我的部分代码.我删除了不相关的部分(例如构造函数、其他方法等). 模板类节点{节点():数据(NULL),下一个(NULL),上一个(NULL){}显式节点(T d):数据(d),下一个(NULL),上一个(NULL){
..
我正在尝试构建结构的对象,但在分配值时遇到分段错误.在我构建对象后,它将通过指针传递到列表中.这是我的实现: struct clientInfo {int 客户端,a,b;};列表 *info=new List();无效线程(int which){客户信息 *cI;cI->client=which;cI->a=4;cI->b=5;信息->附加(CI);} 在执行 'cI->client=whi
..
我是 C 和学习结构的新手.我正在尝试 malloc 一个大小为 30 的 char 指针,但它给出了分段错误(核心转储).我在互联网上搜索了它&所以但我无法解决这个问题.任何帮助将不胜感激. 可能我错误地访问了结构的 char* 成员? typedef 结构{诠释 x;整数y;字符 *f;字符 *l;}str;无效 create_mall();void create_mall()//Mall
..
#include主要的(){int *num2=20;printf("\n\n\n%d",num2);} 当我按原样运行它时,它会打印 20.如果我使用 *num2 它会导致分段错误.为什么? 解决方案 为什么打印 num 没问题,但 *num 导致分段错误? 当你说,int *num2=20;.相当于 int *num;/* Type:(int*) num 是
..
我一直在努力理解多态性和指针,但这个概念让我有些不知所措.幸运的是,我有 stackoverflow 和 google,所以我的大部分问题都可以轻松解决.但是,我已经尝试修复这个分段错误几个小时了,但没有运气,我不确定发生了什么问题.我已经剥离了所有内容以尝试了解出了什么问题,但我相信我缺少动态分配的核心概念. 我将一个字符指针传递给我的函数初始化,我不能在函数内动态分配它吗?我的代码可以编
..
我有一个节点,我定义它的全局指针变量如下: typedef 结构节点{字符*字;结构节点*下一个;} 节点;节点* HashTable = NULL;节点* HeadOfHashTable = NULL; 现在,我分配的内存如下: void allocateMemory(int numOfElements, bool isRealloc, const char* word){如果(!isRe
..
我正在尝试编写一个程序,该程序将纯文本文件作为参数并对其进行解析,将所有数字相加,然后打印出总和.以下是我的代码: #include #include #include 静态 int sumNumbers(char 文件名[]){整数总和 = 0;文件 *file = fopen(filename, "r");字符 *str;while (
..
我正在尝试创建一个自己的列表类,它具有固定大小并且可以存储整数.仅用于学习目的. 这就是我的做法:我有一个名为 Item 的结构,它保存数据(要存储的整数)和指向列表中下一项的指针.当列表初始化时,我首先将 x 数量的空项添加到列表中. 迭代(n-1)中声明的item的地址存储在缓冲区中,因此迭代n中的item的地址可以设置为上一次迭代(n-1)中的item的下一个.这将所有项目相互链
..
以下 C 代码返回“分段错误"错误.我不明白为什么它不返回值 20.我的错误是什么? #include 主函数(){诠释* n;*n = 20;printf("%i\n",*n);返回0;} 解决方案 你还没有给n分配内存,所以 *n = 20; 尝试写入未指定的内存. 试试 #include int *n = malloc(sizeof *
..
这是一个初学者的问题:为什么这会破坏/给出错误? #include #include #include 字符 *strtrim_right(字符 *p){字符 * 结束;国际化;len = strlen(p);而 (*p && len){结束 = p + len-1;if(isalpha(*end))*结束=0;别的休息;}返回(p);}
..
我是 C++ 新手,只是想掌握它.通常看起来还不错,但我偶然发现了这种奇怪/病态的段错误行为: int main () {诠释* b;*b = 27;诠释 c = *b;cout 这个程序,如给定的,产生你所期望的: c 指向 27b 指向 27 另一方面,如果您取消对倒数第二行的注释,您会得到一个在运行时崩溃(seg-fault)的程序.为什么?这是一个有效的指针. 解决方案
..