#include <stdio.h>
#include <stdlib.h>
int main()
{
float **p[10] = NULL;
int array = 4, col = 3;
/* 申请4个行指针 */
p = (float **)malloc(array * sizeof(float *));
if (NULL == p)
{
printf("malloc fail\n");
return -1;
}
/* 为每行申请空间 */
for (int i = 0; i < array; i++)
{
p[i] = (float *)malloc(col * sizeof(float));
if (NULL == p[i])
{
printf("malloc fail\n");
return -1;
}
}
/* 赋值 */
for (int i = 0; i < array; i++)
{
for (int j = 0; j < col; j++)
{
p[i][j] = i + j + 5.23;
}
}
/* 打印 */
for (int i = 0; i < array; i++)
{
for (int j = 0; j < col; j++)
{
printf("%f ", p[i][j]);
}
printf("\n");
}
/* free */
for (int i = 0; i < array; i++)
{
free(p[i]);
}
free(p);
p = NULL;
}
编译:
g++ malloc_array.cpp -o malloc_array && ./malloc_array
运行:
5.230000 6.230000 7.230000
6.230000 7.230000 8.230000
7.230000 8.230000 9.230000
8.230000 9.230000 10.230000