创建长度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);
问题
1)我是不是编码这个权利?
2)教程我发现使用malloc没有把(double*)放在前面。例如。
int *pointer;
pointer = malloc(2*sizeof(int));
这并不编译我在Visual Studio 2010中,Windows 7的错误是“void类型的值不能被分配到int类型的实体”。
为什么它适用于那些教程而不适合我?我猜对了,这是因为他们使用的编译器在我的例子中自动填入(int*)?
2012-10-01
Legendre
+0
“void类型的值不能分配给int类型的实体”不是* C *编译器应该产生的错误。问题是你正在使用* C++编译器*。确保您的源文件名为'.c'。 –