c语言二维动态数组 realloc,C中的动态数组 – 我对malloc/realloc的理解是否正确?...

本文详细介绍了如何在C语言中创建动态1D数组,包括使用malloc初始化,设置元素值,以及使用realloc扩展数组。作者探讨了不使用(void*)类型转换的问题,并解释了为何在某些编译环境下需要额外注意。
摘要由CSDN通过智能技术生成

我正在学习如何在C中创建动态1D数组。下面的代码尝试这样做:

>创建一个长度为10的动态数组,它使用双精度数组

malloc的。

>为j = 0,1,…,9设置数组的每个条目为j / 100。然后打印

出来。

>使用realloc向数组的末尾添加一个额外的空条目。

>将新条目设置为j / 100并再次打印出每个条目。

测试

double* data = (double*)malloc(10*sizeof(double));

for (j=0;j<10;j++)

{

data[j]= ((double)j)/100;

printf("%g, ",data[j]);

}

printf("\n");

data = (double*)realloc(data,11*sizeof(double));

for (j=0;j<11;j++)

{

if (j == 10){ data[j]= ((double)j)/100; }

printf("%g, ",data[j]);

}

free((void*) data);

问题

我是否编码这个权利?

2)教程我发现使用malloc而不把(double *)放在前面。例如。

int *pointer;

pointer = malloc(2*sizeof(int));

这在Visual Studio 2010,Windows 7上不会为我编译。错误是“类型为void的值不能分配给int类型的实体”。

为什么这些教程不适合我?我猜猜是因为他们使用的编译器在我的例子中自动填写(int *)?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值