动态分配不适用于全局整数指针

国王马纳斯

我的代码:

#include <iostream>
#include <cstdlib>
using namespace std;

int *p;
void fun(int *arr, int n)
{
    p = (int *)malloc(sizeof(int) * (n + 1));
    cout << sizeof(p) / sizeof(int) << " " << sizeof(p) << " " << sizeof(int) << endl;
}

int main()
{
    int n;
    cin >> n;
    int arr[n];
    for (int i = 0; i < n; i++)
        cin >> arr[i];
    fun(arr, n);
    return 0;
}

输入:

4
2 1 4 3

输出:

2 8 4

预期输出:

5 20 4

该代码返回了使用 malloc 分配给数组的大小的错误值。我在使用时发现了这个问题,memset(p, -1, sizeof(p)))并且数组初始化不正确。请帮忙。提前致谢。

曼努埃尔·阿姆斯图茨

因为pis 一个指针sizeof(p)将返回 8(或 4 在 32 位系统上)。因为这是 p 使用的大小。p指向的结构体使用的内存大小是另一回事

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery slideDown不适用于具有动态分配ID的元素

来自分类Dev

std :: copy用于动态分配的指针

来自分类Dev

递归函数不适用于指针

来自分类Dev

JavaScript函数不适用于整数

来自分类Dev

MySQL PDO不适用于整数

来自分类Dev

整数不适用于 if 语句

来自分类Dev

重塑(#)不适用于动态参数

来自分类Dev

jQuery .on不适用于动态内容

来自分类Dev

buttonset()不适用于动态输入

来自分类Dev

在奇怪的情况下,多部分配置不适用于动态添加的servlet

来自分类Dev

在奇怪的情况下,多部分配置不适用于动态添加的servlet

来自分类Dev

模型中的Laravel 5.2质量分配不适用于动态表名称

来自分类Dev

动态分配和指针

来自分类Dev

Javascript“应用”功能似乎不适用于全局“ this”?

来自分类Dev

Javascript 替换为全局不适用于插入符号

来自分类Dev

django rest 框架全局分页不适用于 ListCreateAPIView

来自分类Dev

模板推导不适用于功能指针参考

来自分类Dev

javaout typemap不适用于指针的std :: vector

来自分类Dev

引用指针不适用于C ++中的头文件

来自分类Dev

一维智能指针不适用于语法(*)++

来自分类Dev

C指针数组不适用于memcpy

来自分类Dev

模板推导不适用于功能指针参考

来自分类Dev

javaout typemap不适用于指针的std :: vector

来自分类Dev

位移位不适用于变量声明分配单行

来自分类Dev

Java资源尝试不适用于分配吗?

来自分类Dev

前缀变量分配不适用于echo

来自分类Dev

变量分配不适用于开关参数

来自分类Dev

C ++枚举类整数不适用于数组下标

来自分类Dev

qsort()不适用于长整数数组