相关疑难解决方法(0)

在什么情况下我使用malloc vs new?

我在C++中看到有多种方式来分配和释放数据,我知道当你打电话给malloc你时应该打电话free,当你使用new操作员时你应该配对,delete将两者混合是错误的(例如,调用free()创建的东西)与new操作员),但我不知道何时应该使用malloc/ free何时应该在我的真实世界程序中使用new/ delete.

如果您是C++专家,请告诉我您在此方面遵循的任何经验法则或惯例.

c++ malloc memory-management new-operator

447
推荐指数
12
解决办法
26万
查看次数

没有malloc的C中的链接列表

#include <stdio.h>

typedef struct node
{
      int i;
      struct node *next;
}node;

node getnode(int a)
{
      struct node n;
      n.i=a;
      n.next=NULL;
      return n;
}

main()
{
     int i;
     node newtemp,root,temp;

     scanf("%d",&i);
     root=getnode(i);
     temp=root;

     while(i--)
     {
         newtemp=getnode(i);

         temp.next=&newtemp;
         if(root.next==NULL)
         {
            root=temp;
         }
        temp=*(temp.next);
     }


     temp=root;

     while( temp.next != NULL )
     {
         printf(" %d ",temp.i);
         temp=*(temp.next);
     }
}
Run Code Online (Sandbox Code Playgroud)

我试图在不使用malloc的情况下创建链表.编程只打印根,后面没有节点.我找不到这个bug.如果有任何内存问题,gcc编译器会抛出一个分段错误.(?)请忽略糟糕的编程风格..

c malloc linked-list

17
推荐指数
5
解决办法
2万
查看次数

使用malloc是否安全?

有人告诉我,分配malloc不再安全了,我不是C/C++大师,但我用malloc和C/C++做了一些东西.有谁知道我有什么风险?

引用他:

[..]但事实上,C/C++的弱点在于它的安全性,而阿喀琉斯的脚跟确实是malloc和滥用指针.C/C++它是一种众所周知的不安全语言.[..]我不建议继续用C++编程的应用程序很少."

c c++ malloc

8
推荐指数
3
解决办法
4358
查看次数

Malloc 与 C 中的静态数组

当在运行时已知大小时,常说使用 malloc 我们也可以写

int x;
scanf("%d",&x);
char arr[x];
Run Code Online (Sandbox Code Playgroud)

那么当我们可以动态声明数组时为什么要使用 malloc 呢?

c arrays malloc static dynamic

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