相关疑难解决方法(0)

为什么C++需要为malloc()进行强制转换,但C不需要?

我一直对此感到好奇 - 为什么在C++中我必须从mallocC而不是在C中转换返回值?

以下是C++中的示例:

int *int_ptr = (int *)malloc(sizeof(int*));
Run Code Online (Sandbox Code Playgroud)

以下是C++中不起作用的示例(无转换):

int *int_ptr = malloc(sizeof(int*));
Run Code Online (Sandbox Code Playgroud)

我听说在C中,事实上,输出输出malloc()是一个错误.

任何人都可以评论这个话题吗?

c c++ malloc

39
推荐指数
3
解决办法
8240
查看次数

使用 malloc(sizeof()) 从 *void 到 *int [-fpermissive] 的无效转换

我正在编写一个程序来计算两个数字的最大公约数,但我遇到了malloc函数和指针的问题。实际上,堆栈和堆段在内存中如何工作以及为什么工作是很清楚的。但是,我还无法理解malloc在程序中何时声明指针和使用是否有效、是否必要。这是代码:

#include <iostream>
#include <stdlib.h>
#include <stdio.h>

int *calcolaDivisori(int);

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

    int foundCounter = 0;
    int i,j,s1,s2;
    int n1,n2;
    int mcd = 1,mcm;
    int *pn1,*pn2;
    int d1[100],d2[100];

    // INPUT dei due interi

    printf("Inserisci il primo numero :");
    scanf(" %d", &n1);
    printf("\nInserisci il secondo numero :");
    scanf(" %d", &n2);

    // calcolo divisori del primo e del secondo numero e li assegno ai relativi array

    pn1 = calcolaDivisori(n1);
    if (!pn1) return 1;
    pn2 = …
Run Code Online (Sandbox Code Playgroud)

c malloc pointers heap-memory

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

标签 统计

c ×2

malloc ×2

c++ ×1

heap-memory ×1

pointers ×1