小编Kon*_*lph的帖子

链表列表

我试图实现链表的数组.我面临的问题是当我使用for循环进行遍历时,代码会抛出运行时错误.任何人都可以解释为什么会发生这种情况和可能的建议 //创建链表列表的程序.

     #include <iostream>
     using namespace std;

     struct Node{
       int val;
       Node *next;
     };

     struct Node* insertFirst(struct Node *head, int data){
       struct Node *temp = new Node;
       temp->val = data;
       temp->next = NULL;

       if(head == NULL){
         head = temp;
         return head;
       }
       temp->next=head;

       return temp;
     }

     void traverse(struct Node* head){
       struct Node *list = head;
       if(list == NULL)
         cout<<"List is empty";

       else{
         while(list){
           cout<<list->val<<",";
           list = list->next;
         }
       }
       cout<<endl;    
     }

    int main(){
      struct Node* array[3];

      array[0] = insertFirst(array[0],30);
      array[0] …
Run Code Online (Sandbox Code Playgroud)

c++ linked-list

-2
推荐指数
1
解决办法
322
查看次数

隐秘的for循环语句

我在看一些开源软件,他们以不同的方式,然后我看到使用for循环/运营商,我想知道,如果有人能告诉我什么是英文这样做.我相信开源是C语言,也许是C++,不确定它是否有所作为,但我在使用C++.

给出的for循环是,TSTEP = 60,tt和t只是双变量

for (tt=t<0.0?-TSTEP:TSTEP;fabs(t)>1E-9;t-=tt)
Run Code Online (Sandbox Code Playgroud)

c++

-3
推荐指数
1
解决办法
119
查看次数

在哪里以及如何定义成员变量?在标头或实现文件中?

我目前正在学习C++.我在Java(我在大学学过)练习(大约2年).

我在C++中理解类和成员变量的概念时遇到了问题.给出以下示例:

文件:Mems.h:

class Mems{

int n;
Mems();
};
Run Code Online (Sandbox Code Playgroud)

文件Mems.cpp:

class Mems{

Mems::Mems(){
    //Do something in constructor
}
};
Run Code Online (Sandbox Code Playgroud)

我不知道,如果我想让它们坚持到对象,我必须把变量放在哪里:

当我在头文件中定义它们时,我无法在cpp文件中访问它们,反之亦然.

你能给我一个提示吗?

c++

-3
推荐指数
1
解决办法
2382
查看次数

内存泄漏与std :: string

以下代码:

#include <string>

void *ptr = nullptr;
std::string *p = new std::string();
*p = "1";
ptr = p;
delete ptr;
Run Code Online (Sandbox Code Playgroud)

似乎使用以下输出使内存泄漏:

21:检测到内存泄漏!

21:转储对象 - >

21:{706}正常块,位于0x00723860,长度为8个字节.

21:数据:<q> C8 04 71 00 00 00 00 00

21:对象转储完成.

这很奇怪,因为下面的代码显示没有错误(也适用于double,bool):

void *ptr = nullptr;
int *p = new int();
*p = 1;
ptr = p;
delete ptr;
Run Code Online (Sandbox Code Playgroud)

我知道我做错了什么?(我需要使用"void*"指针,因为它可能会保留不同类型的对象).非常感谢那些可以帮助我的人!:)

c++ string memory-leaks

-4
推荐指数
1
解决办法
951
查看次数

启动线程在指针初始化时导致分段错误

为什么*y = 20只有启动两个“空”线程时,这段代码才会导致分段错误?

int main(int argc, char **argv) {

    int x = 10;
    int *y;
    *y = 20;

    std::thread t1([]{});
    std::thread t2([]{});

    t1.join();
    t2.join();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading pointers segmentation-fault

-4
推荐指数
1
解决办法
85
查看次数